//    |  /           |
//    ' /   __| _` | __|  _ \   __|
//    . \  |   (   | |   (   |\__ `
//   _|\_\_|  \__,_|\__|\___/ ____/
//                   Multi-Physics
//
//  License:		 BSD License
//					 Kratos default license: kratos/license.txt
//
//  Main authors:    Ruben Zorrilla
//

// External includes

// System includes

// Project includes

// Application includes
#include "symbolic_stokes.h"
#include "data_containers/stokes/stokes_data.h"
#include "custom_utilities/fluid_element_utilities.h"

namespace Kratos
{

///////////////////////////////////////////////////////////////////////////////////////////////////
// Life cycle

template <class TElementData>
SymbolicStokes<TElementData>::SymbolicStokes(IndexType NewId)
    : FluidElement<TElementData>(NewId)
{}

template <class TElementData>
SymbolicStokes<TElementData>::SymbolicStokes(
    IndexType NewId,
    const NodesArrayType& ThisNodes)
    : FluidElement<TElementData>(NewId, ThisNodes)
{}

template <class TElementData>
SymbolicStokes<TElementData>::SymbolicStokes(
    IndexType NewId,
    GeometryType::Pointer pGeometry)
    : FluidElement<TElementData>(NewId, pGeometry)
{}

template <class TElementData>
SymbolicStokes<TElementData>::SymbolicStokes(
    IndexType NewId,
    GeometryType::Pointer pGeometry,
    Properties::Pointer pProperties)
    : FluidElement<TElementData>(NewId, pGeometry, pProperties)
{}

template <class TElementData>
SymbolicStokes<TElementData>::~SymbolicStokes()
{}

///////////////////////////////////////////////////////////////////////////////////////////////////
// Public Operations

template< class TElementData >
Element::Pointer SymbolicStokes<TElementData>::Create(
    IndexType NewId,
    NodesArrayType const& ThisNodes,
    Properties::Pointer pProperties) const
{
    return Kratos::make_intrusive<SymbolicStokes>(NewId, this->GetGeometry().Create(ThisNodes), pProperties);
}


template< class TElementData >
Element::Pointer SymbolicStokes<TElementData>::Create(
    IndexType NewId,
    GeometryType::Pointer pGeom,
    Properties::Pointer pProperties) const
{
    return Kratos::make_intrusive<SymbolicStokes>(NewId, pGeom, pProperties);
}

///////////////////////////////////////////////////////////////////////////////////////////////////
// Public Inquiry

template <class TElementData>
int SymbolicStokes<TElementData>::Check(const ProcessInfo &rCurrentProcessInfo) const
{
    KRATOS_TRY;
    int out = FluidElement<TElementData>::Check(rCurrentProcessInfo);
    KRATOS_ERROR_IF_NOT(out == 0)
        << "Error in base class Check for Element " << this->Info() << std::endl
        << "Error code is " << out << std::endl;

    return 0;

    KRATOS_CATCH("");
}

///////////////////////////////////////////////////////////////////////////////////////////////////
// Public I/O

template<class TElementData>
const Parameters SymbolicStokes<TElementData>::GetSpecifications() const
{
    const Parameters specifications = Parameters(R"({
        "time_integration"           : ["implicit"],
        "framework"                  : "ale",
        "symmetric_lhs"              : true,
        "positive_definite_lhs"      : true,
        "output"                     : {
            "gauss_point"            : [],
            "nodal_historical"       : ["VELOCITY","PRESSURE"],
            "nodal_non_historical"   : [],
            "entity"                 : []
        },
        "required_variables"         : ["VELOCITY","ACCELERATION","MESH_VELOCITY","PRESSURE","IS_STRUCTURE","DISPLACEMENT","BODY_FORCE","NODAL_AREA","NODAL_H","ADVPROJ","DIVPROJ","REACTION","REACTION_WATER_PRESSURE","EXTERNAL_PRESSURE","NORMAL","Y_WALL","Q_VALUE"]
        "required_dofs"              : [],
        "flags_used"                 : [],
        "compatible_geometries"      : ["Triangle2D3","Quadrilateral2D4","Tetrahedra3D4","Prism3D6","Hexahedra3D8"],
        "element_integrates_in_time" : true,
        "compatible_constitutive_laws": {
            "type"        : ["Newtonian2DLaw","Newtonian3DLaw","NewtonianTemperatureDependent2DLaw","NewtonianTemperatureDependent3DLaw","Euler2DLaw","Euler3DLaw"],
            "dimension"   : ["2D","3D"],
            "strain_size" : [3,6]
        },
        "required_polynomial_degree_of_geometry" : 1,
        "documentation"   :
            "This implements an Stokes element with quasi-static Variational MultiScales (VMS) stabilization. Note that no viscous behavior is hardcoded, meaning that any fluid constitutive model can be used through a constitutive law."
    })");

    if (Dim == 2) {
        std::vector<std::string> dofs_2d({"VELOCITY_X","VELOCITY_Y","PRESSURE"});
        specifications["required_dofs"].SetStringArray(dofs_2d);
    } else {
        std::vector<std::string> dofs_3d({"VELOCITY_X","VELOCITY_Y","VELOCITY_Z","PRESSURE"});
        specifications["required_dofs"].SetStringArray(dofs_3d);
    }

    return specifications;
}


template <class TElementData>
std::string SymbolicStokes<TElementData>::Info() const
{
    std::stringstream buffer;
    buffer << "SymbolicStokes" << Dim << "D" << NumNodes << "N #" << this->Id();
    return buffer.str();
}

template <class TElementData>
void SymbolicStokes<TElementData>::PrintInfo(std::ostream& rOStream) const
{
    rOStream << this->Info() << std::endl;

    if (this->GetConstitutiveLaw() != nullptr) {
        rOStream << "with constitutive law " << std::endl;
        this->GetConstitutiveLaw()->PrintInfo(rOStream);
    }
}

///////////////////////////////////////////////////////////////////////////////////////////////////
// Protected operations

template <class TElementData>
void SymbolicStokes<TElementData>::AddTimeIntegratedSystem(
    TElementData& rData,
    MatrixType& rLHS,
    VectorType& rRHS)
{
    this->ComputeGaussPointLHSContribution(rData, rLHS);
    this->ComputeGaussPointRHSContribution(rData, rRHS);
}

template <class TElementData>
void SymbolicStokes<TElementData>::AddTimeIntegratedLHS(
    TElementData& rData,
    MatrixType& rLHS)
{
    this->ComputeGaussPointLHSContribution(rData, rLHS);
}

template <class TElementData>
void SymbolicStokes<TElementData>::AddTimeIntegratedRHS(
    TElementData& rData,
    VectorType& rRHS)
{
    this->ComputeGaussPointRHSContribution(rData, rRHS);
}

template <class TElementData>
void SymbolicStokes<TElementData>::AddBoundaryTraction(
    TElementData& rData,
    const Vector& rUnitNormal,
    MatrixType& rLHS,
    VectorType& rRHS)
{
    // Set the current Gauss pt. Voigt notation normal projection matrix
    BoundedMatrix<double, Dim, StrainSize> voigt_normal_projection_matrix = ZeroMatrix(Dim, StrainSize);
    FluidElementUtilities<NumNodes>::VoigtTransformForProduct(rUnitNormal, voigt_normal_projection_matrix);

    // Set the current Gauss pt. strain matrix
    BoundedMatrix<double, StrainSize, LocalSize> B_matrix = ZeroMatrix(StrainSize, LocalSize);
    FluidElementUtilities<NumNodes>::GetStrainMatrix(rData.DN_DX, B_matrix);

    // Compute some Gauss pt. auxiliar matrices
    const BoundedMatrix<double, Dim, StrainSize> aux_matrix_AC = prod(voigt_normal_projection_matrix, rData.C);
    const BoundedMatrix<double, StrainSize, LocalSize> aux_matrix_ACB = prod(aux_matrix_AC, B_matrix);

    // Fill the pressure to Voigt notation operator matrix
    BoundedMatrix<double, StrainSize, LocalSize> pres_to_voigt_matrix_op = ZeroMatrix(StrainSize, LocalSize);
    for (unsigned int i=0; i<NumNodes; ++i) {
        for (unsigned int comp=0; comp<Dim; ++comp) {
            pres_to_voigt_matrix_op(comp, i*BlockSize+Dim) = rData.N[i];
        }
    }

    // Set the shape functions auxiliar transpose matrix
    BoundedMatrix<double, LocalSize, Dim> N_aux_trans = ZeroMatrix(LocalSize, Dim);
    for (unsigned int i=0; i<NumNodes; ++i) {
        for (unsigned int comp=0; comp<Dim; ++comp) {
            N_aux_trans(i*BlockSize+comp, comp) = rData.N[i];
        }
    }

    // Contribution coming from the shear stress operator
    noalias(rData.lhs) = prod(N_aux_trans, aux_matrix_ACB);

    // Contribution coming from the pressure terms
    const BoundedMatrix<double, LocalSize, StrainSize> N_voigt_proj_matrix = prod(N_aux_trans, voigt_normal_projection_matrix);
    noalias(rData.lhs) -= prod(N_voigt_proj_matrix, pres_to_voigt_matrix_op);

    array_1d<double,LocalSize> values;
    this->GetCurrentValuesVector(rData,values);

    rData.lhs *= rData.Weight;
    noalias(rLHS) -= rData.lhs;
    noalias(rRHS) += prod(rData.lhs,values);
}

template <class TElementData>
void SymbolicStokes<TElementData>::Calculate(
    const Variable<double> &rVariable,
    double &rOutput,
    const ProcessInfo &rCurrentProcessInfo)
{
    KRATOS_TRY
    rOutput = 0.0;

    if (rVariable == HEAT_FLUX) {
        TElementData data;
        data.Initialize(*this, rCurrentProcessInfo);
        rOutput = 0.0;
        // Shape functions
        const auto &r_geometry = this->GetGeometry();

        const unsigned int num_nodes = r_geometry.PointsNumber();
        Vector data_N(num_nodes);
        for (unsigned int i = 0; i < num_nodes; i++) {
            data_N[i] = 1.0 / static_cast<double>(num_nodes);
        }
        data.N = data_N;
        // Shape functions gradients
        const GeometryData::IntegrationMethod integration_method = GeometryData::IntegrationMethod::GI_GAUSS_2;
        ShapeFunctionDerivativesArrayType shape_derivatives;
        Vector DetJ;
        r_geometry.ShapeFunctionsIntegrationPointsGradients(shape_derivatives, DetJ, integration_method);
        data.DN_DX = shape_derivatives[0]; // Note: Valid only for linear elements
        // Compute strain and stress
        this->CalculateMaterialResponse(data);
        // Compute dissipation
        rOutput = inner_prod(data.ShearStress, data.StrainRate);
    }
    else if (rVariable == EQ_STRAIN_RATE || rVariable == EFFECTIVE_VISCOSITY) {
        TElementData data;
        data.Initialize(*this, rCurrentProcessInfo);
        rOutput = 0.0;
        // Shape functions
        const auto &r_geometry = this->GetGeometry();
        const unsigned int num_nodes = r_geometry.PointsNumber();
        Vector data_N(num_nodes);
        for (unsigned int i = 0; i < num_nodes; i++) {
            data_N[i] = 1.0 / static_cast<double>(num_nodes);
        }
        data.N = data_N;
        // Shape function gradients
        const GeometryData::IntegrationMethod integration_method = GeometryData::IntegrationMethod::GI_GAUSS_2;
        ShapeFunctionDerivativesArrayType shape_derivatives;
        Vector DetJ;
        r_geometry.ShapeFunctionsIntegrationPointsGradients(shape_derivatives, DetJ, integration_method);
        data.DN_DX = shape_derivatives[0]; // Note: Valid only for linear elements
        // Compute strain and stress
        this->CalculateMaterialResponse(data);
        const auto &p_constitutive_law = this->GetConstitutiveLaw();
        rOutput = p_constitutive_law->GetValue(rVariable, rOutput);
    }
    else {
        this->Calculate(rVariable, rOutput, rCurrentProcessInfo);
    }

    KRATOS_CATCH("")
}

template <>
void SymbolicStokes< SymbolicStokesData<2,3> >::ComputeGaussPointLHSContribution(
    SymbolicStokesData<2,3>& rData,
    MatrixType& rLHS)
{
    const double rho = rData.Density;
    const double mu = rData.EffectiveViscosity;

    const double h = rData.ElementSize;
    const double dt = rData.DeltaTime;
    const double bdf0 = rData.bdf0;
    const double dyn_tau = rData.DynamicTau;

    // Get constitutive matrix
    const Matrix& C = rData.C;

    // Get shape function values
    const auto& N = rData.N;
    const auto& DN = rData.DN_DX;

    // Stabilization parameters
    constexpr double stab_c1 = 4.0;

    auto& lhs = rData.lhs;

    const double clhs0 =             bdf0*rho;
const double clhs1 =             pow(N[0], 2)*clhs0;
const double clhs2 =             C(0,0)*DN(0,0) + C(0,2)*DN(0,1);
const double clhs3 =             C(0,2)*DN(0,0);
const double clhs4 =             C(2,2)*DN(0,1) + clhs3;
const double clhs5 =             pow(DN(0,0), 2);
const double clhs6 =             pow(h, 2);
const double clhs7 =             dyn_tau*rho/dt + mu*stab_c1/clhs6;
const double clhs8 =             1.0*clhs6*clhs7/stab_c1;
const double clhs9 =             C(0,1)*DN(0,1) + clhs3;
const double clhs10 =             C(1,2)*DN(0,1);
const double clhs11 =             C(2,2)*DN(0,0) + clhs10;
const double clhs12 =             DN(0,0)*clhs8;
const double clhs13 =             DN(0,1)*clhs12;
const double clhs14 =             DN(0,0)*N[0];
const double clhs15 =             C(0,0)*DN(1,0) + C(0,2)*DN(1,1);
const double clhs16 =             C(0,2)*DN(1,0);
const double clhs17 =             C(2,2)*DN(1,1) + clhs16;
const double clhs18 =             N[0]*clhs0;
const double clhs19 =             N[1]*clhs18;
const double clhs20 =             DN(0,0)*DN(1,0);
const double clhs21 =             clhs19 + clhs20*clhs8;
const double clhs22 =             C(0,1)*DN(1,1) + clhs16;
const double clhs23 =             C(1,2)*DN(1,1);
const double clhs24 =             C(2,2)*DN(1,0) + clhs23;
const double clhs25 =             DN(1,1)*clhs12;
const double clhs26 =             DN(0,0)*N[1];
const double clhs27 =             C(0,0)*DN(2,0) + C(0,2)*DN(2,1);
const double clhs28 =             C(0,2)*DN(2,0);
const double clhs29 =             C(2,2)*DN(2,1) + clhs28;
const double clhs30 =             N[2]*clhs18;
const double clhs31 =             DN(0,0)*DN(2,0);
const double clhs32 =             clhs30 + clhs31*clhs8;
const double clhs33 =             C(0,1)*DN(2,1) + clhs28;
const double clhs34 =             C(1,2)*DN(2,1);
const double clhs35 =             C(2,2)*DN(2,0) + clhs34;
const double clhs36 =             DN(2,1)*clhs12;
const double clhs37 =             DN(0,0)*N[2];
const double clhs38 =             C(0,1)*DN(0,0) + clhs10;
const double clhs39 =             C(1,1)*DN(0,1) + C(1,2)*DN(0,0);
const double clhs40 =             pow(DN(0,1), 2);
const double clhs41 =             DN(0,1)*N[0];
const double clhs42 =             C(0,1)*DN(1,0) + clhs23;
const double clhs43 =             DN(0,1)*clhs8;
const double clhs44 =             DN(1,0)*clhs43;
const double clhs45 =             C(1,1)*DN(1,1) + C(1,2)*DN(1,0);
const double clhs46 =             DN(0,1)*DN(1,1);
const double clhs47 =             clhs19 + clhs46*clhs8;
const double clhs48 =             DN(0,1)*N[1];
const double clhs49 =             C(0,1)*DN(2,0) + clhs34;
const double clhs50 =             DN(2,0)*clhs43;
const double clhs51 =             C(1,1)*DN(2,1) + C(1,2)*DN(2,0);
const double clhs52 =             DN(0,1)*DN(2,1);
const double clhs53 =             clhs30 + clhs52*clhs8;
const double clhs54 =             DN(0,1)*N[2];
const double clhs55 =             1.0/clhs7;
const double clhs56 =             clhs0*clhs55;
const double clhs57 =             clhs56 + 1;
const double clhs58 =             DN(1,0)*N[0];
const double clhs59 =             DN(1,1)*N[0];
const double clhs60 =             clhs55*(clhs20 + clhs46);
const double clhs61 =             DN(2,0)*N[0];
const double clhs62 =             DN(2,1)*N[0];
const double clhs63 =             clhs55*(clhs31 + clhs52);
const double clhs64 =             pow(N[1], 2)*clhs0;
const double clhs65 =             pow(DN(1,0), 2);
const double clhs66 =             DN(1,0)*clhs8;
const double clhs67 =             DN(1,1)*clhs66;
const double clhs68 =             DN(1,0)*N[1];
const double clhs69 =             N[1]*N[2]*clhs0;
const double clhs70 =             DN(1,0)*DN(2,0);
const double clhs71 =             clhs69 + clhs70*clhs8;
const double clhs72 =             DN(2,1)*clhs66;
const double clhs73 =             DN(1,0)*N[2];
const double clhs74 =             pow(DN(1,1), 2);
const double clhs75 =             DN(1,1)*N[1];
const double clhs76 =             DN(2,0)*clhs8;
const double clhs77 =             DN(1,1)*clhs76;
const double clhs78 =             DN(1,1)*DN(2,1);
const double clhs79 =             clhs69 + clhs78*clhs8;
const double clhs80 =             DN(1,1)*N[2];
const double clhs81 =             DN(2,0)*N[1];
const double clhs82 =             DN(2,1)*N[1];
const double clhs83 =             clhs55*(clhs70 + clhs78);
const double clhs84 =             pow(N[2], 2)*clhs0;
const double clhs85 =             pow(DN(2,0), 2);
const double clhs86 =             DN(2,1)*clhs76;
const double clhs87 =             DN(2,0)*N[2];
const double clhs88 =             pow(DN(2,1), 2);
const double clhs89 =             DN(2,1)*N[2];
            lhs(0,0)=DN(0,0)*clhs2 + DN(0,1)*clhs4 + clhs1 + clhs5*clhs8;
            lhs(0,1)=DN(0,0)*clhs9 + DN(0,1)*clhs11 + clhs13;
            lhs(0,2)=-clhs14;
            lhs(0,3)=DN(0,0)*clhs15 + DN(0,1)*clhs17 + clhs21;
            lhs(0,4)=DN(0,0)*clhs22 + DN(0,1)*clhs24 + clhs25;
            lhs(0,5)=-clhs26;
            lhs(0,6)=DN(0,0)*clhs27 + DN(0,1)*clhs29 + clhs32;
            lhs(0,7)=DN(0,0)*clhs33 + DN(0,1)*clhs35 + clhs36;
            lhs(0,8)=-clhs37;
            lhs(1,0)=DN(0,0)*clhs4 + DN(0,1)*clhs38 + clhs13;
            lhs(1,1)=DN(0,0)*clhs11 + DN(0,1)*clhs39 + clhs1 + clhs40*clhs8;
            lhs(1,2)=-clhs41;
            lhs(1,3)=DN(0,0)*clhs17 + DN(0,1)*clhs42 + clhs44;
            lhs(1,4)=DN(0,0)*clhs24 + DN(0,1)*clhs45 + clhs47;
            lhs(1,5)=-clhs48;
            lhs(1,6)=DN(0,0)*clhs29 + DN(0,1)*clhs49 + clhs50;
            lhs(1,7)=DN(0,0)*clhs35 + DN(0,1)*clhs51 + clhs53;
            lhs(1,8)=-clhs54;
            lhs(2,0)=clhs14*clhs57;
            lhs(2,1)=clhs41*clhs57;
            lhs(2,2)=clhs55*(clhs40 + clhs5);
            lhs(2,3)=clhs26*clhs56 + clhs58;
            lhs(2,4)=clhs48*clhs56 + clhs59;
            lhs(2,5)=clhs60;
            lhs(2,6)=clhs37*clhs56 + clhs61;
            lhs(2,7)=clhs54*clhs56 + clhs62;
            lhs(2,8)=clhs63;
            lhs(3,0)=DN(1,0)*clhs2 + DN(1,1)*clhs4 + clhs21;
            lhs(3,1)=DN(1,0)*clhs9 + DN(1,1)*clhs11 + clhs44;
            lhs(3,2)=-clhs58;
            lhs(3,3)=DN(1,0)*clhs15 + DN(1,1)*clhs17 + clhs64 + clhs65*clhs8;
            lhs(3,4)=DN(1,0)*clhs22 + DN(1,1)*clhs24 + clhs67;
            lhs(3,5)=-clhs68;
            lhs(3,6)=DN(1,0)*clhs27 + DN(1,1)*clhs29 + clhs71;
            lhs(3,7)=DN(1,0)*clhs33 + DN(1,1)*clhs35 + clhs72;
            lhs(3,8)=-clhs73;
            lhs(4,0)=DN(1,0)*clhs4 + DN(1,1)*clhs38 + clhs25;
            lhs(4,1)=DN(1,0)*clhs11 + DN(1,1)*clhs39 + clhs47;
            lhs(4,2)=-clhs59;
            lhs(4,3)=DN(1,0)*clhs17 + DN(1,1)*clhs42 + clhs67;
            lhs(4,4)=DN(1,0)*clhs24 + DN(1,1)*clhs45 + clhs64 + clhs74*clhs8;
            lhs(4,5)=-clhs75;
            lhs(4,6)=DN(1,0)*clhs29 + DN(1,1)*clhs49 + clhs77;
            lhs(4,7)=DN(1,0)*clhs35 + DN(1,1)*clhs51 + clhs79;
            lhs(4,8)=-clhs80;
            lhs(5,0)=clhs26 + clhs56*clhs58;
            lhs(5,1)=clhs48 + clhs56*clhs59;
            lhs(5,2)=clhs60;
            lhs(5,3)=clhs57*clhs68;
            lhs(5,4)=clhs57*clhs75;
            lhs(5,5)=clhs55*(clhs65 + clhs74);
            lhs(5,6)=clhs56*clhs73 + clhs81;
            lhs(5,7)=clhs56*clhs80 + clhs82;
            lhs(5,8)=clhs83;
            lhs(6,0)=DN(2,0)*clhs2 + DN(2,1)*clhs4 + clhs32;
            lhs(6,1)=DN(2,0)*clhs9 + DN(2,1)*clhs11 + clhs50;
            lhs(6,2)=-clhs61;
            lhs(6,3)=DN(2,0)*clhs15 + DN(2,1)*clhs17 + clhs71;
            lhs(6,4)=DN(2,0)*clhs22 + DN(2,1)*clhs24 + clhs77;
            lhs(6,5)=-clhs81;
            lhs(6,6)=DN(2,0)*clhs27 + DN(2,1)*clhs29 + clhs8*clhs85 + clhs84;
            lhs(6,7)=DN(2,0)*clhs33 + DN(2,1)*clhs35 + clhs86;
            lhs(6,8)=-clhs87;
            lhs(7,0)=DN(2,0)*clhs4 + DN(2,1)*clhs38 + clhs36;
            lhs(7,1)=DN(2,0)*clhs11 + DN(2,1)*clhs39 + clhs53;
            lhs(7,2)=-clhs62;
            lhs(7,3)=DN(2,0)*clhs17 + DN(2,1)*clhs42 + clhs72;
            lhs(7,4)=DN(2,0)*clhs24 + DN(2,1)*clhs45 + clhs79;
            lhs(7,5)=-clhs82;
            lhs(7,6)=DN(2,0)*clhs29 + DN(2,1)*clhs49 + clhs86;
            lhs(7,7)=DN(2,0)*clhs35 + DN(2,1)*clhs51 + clhs8*clhs88 + clhs84;
            lhs(7,8)=-clhs89;
            lhs(8,0)=clhs37 + clhs56*clhs61;
            lhs(8,1)=clhs54 + clhs56*clhs62;
            lhs(8,2)=clhs63;
            lhs(8,3)=clhs56*clhs81 + clhs73;
            lhs(8,4)=clhs56*clhs82 + clhs80;
            lhs(8,5)=clhs83;
            lhs(8,6)=clhs57*clhs87;
            lhs(8,7)=clhs57*clhs89;
            lhs(8,8)=clhs55*(clhs85 + clhs88);


    // Add intermediate results to local system
    noalias(rLHS) += lhs * rData.Weight;
}

template <>
void SymbolicStokes< SymbolicStokesData<2,4> >::ComputeGaussPointLHSContribution(
    SymbolicStokesData<2,4>& rData,
    MatrixType& rLHS)
{
    const double rho = rData.Density;
    const double mu = rData.EffectiveViscosity;

    const double h = rData.ElementSize;
    const double dt = rData.DeltaTime;
    const double bdf0 = rData.bdf0;
    const double dyn_tau = rData.DynamicTau;

    // Get constitutive matrix
    const Matrix& C = rData.C;

    // Get shape function values
    const auto& N = rData.N;
    const auto& DN = rData.DN_DX;

    // Stabilization parameters
    constexpr double stab_c1 = 4.0;

    auto& lhs = rData.lhs;

    const double clhs0 =             bdf0*rho;
const double clhs1 =             pow(N[0], 2)*clhs0;
const double clhs2 =             C(0,0)*DN(0,0) + C(0,2)*DN(0,1);
const double clhs3 =             C(0,2)*DN(0,0);
const double clhs4 =             C(2,2)*DN(0,1) + clhs3;
const double clhs5 =             pow(DN(0,0), 2);
const double clhs6 =             pow(h, 2);
const double clhs7 =             dyn_tau*rho/dt + mu*stab_c1/clhs6;
const double clhs8 =             1.0*clhs6*clhs7/stab_c1;
const double clhs9 =             C(0,1)*DN(0,1) + clhs3;
const double clhs10 =             C(1,2)*DN(0,1);
const double clhs11 =             C(2,2)*DN(0,0) + clhs10;
const double clhs12 =             DN(0,0)*clhs8;
const double clhs13 =             DN(0,1)*clhs12;
const double clhs14 =             DN(0,0)*N[0];
const double clhs15 =             C(0,0)*DN(1,0) + C(0,2)*DN(1,1);
const double clhs16 =             C(0,2)*DN(1,0);
const double clhs17 =             C(2,2)*DN(1,1) + clhs16;
const double clhs18 =             N[0]*clhs0;
const double clhs19 =             N[1]*clhs18;
const double clhs20 =             DN(0,0)*DN(1,0);
const double clhs21 =             clhs19 + clhs20*clhs8;
const double clhs22 =             C(0,1)*DN(1,1) + clhs16;
const double clhs23 =             C(1,2)*DN(1,1);
const double clhs24 =             C(2,2)*DN(1,0) + clhs23;
const double clhs25 =             DN(1,1)*clhs12;
const double clhs26 =             DN(0,0)*N[1];
const double clhs27 =             C(0,0)*DN(2,0) + C(0,2)*DN(2,1);
const double clhs28 =             C(0,2)*DN(2,0);
const double clhs29 =             C(2,2)*DN(2,1) + clhs28;
const double clhs30 =             N[2]*clhs18;
const double clhs31 =             DN(0,0)*DN(2,0);
const double clhs32 =             clhs30 + clhs31*clhs8;
const double clhs33 =             C(0,1)*DN(2,1) + clhs28;
const double clhs34 =             C(1,2)*DN(2,1);
const double clhs35 =             C(2,2)*DN(2,0) + clhs34;
const double clhs36 =             DN(2,1)*clhs12;
const double clhs37 =             DN(0,0)*N[2];
const double clhs38 =             C(0,0)*DN(3,0) + C(0,2)*DN(3,1);
const double clhs39 =             C(0,2)*DN(3,0);
const double clhs40 =             C(2,2)*DN(3,1) + clhs39;
const double clhs41 =             N[3]*clhs18;
const double clhs42 =             DN(0,0)*DN(3,0);
const double clhs43 =             clhs41 + clhs42*clhs8;
const double clhs44 =             C(0,1)*DN(3,1) + clhs39;
const double clhs45 =             C(1,2)*DN(3,1);
const double clhs46 =             C(2,2)*DN(3,0) + clhs45;
const double clhs47 =             DN(3,1)*clhs12;
const double clhs48 =             DN(0,0)*N[3];
const double clhs49 =             C(0,1)*DN(0,0) + clhs10;
const double clhs50 =             C(1,1)*DN(0,1) + C(1,2)*DN(0,0);
const double clhs51 =             pow(DN(0,1), 2);
const double clhs52 =             DN(0,1)*N[0];
const double clhs53 =             C(0,1)*DN(1,0) + clhs23;
const double clhs54 =             DN(0,1)*clhs8;
const double clhs55 =             DN(1,0)*clhs54;
const double clhs56 =             C(1,1)*DN(1,1) + C(1,2)*DN(1,0);
const double clhs57 =             DN(0,1)*DN(1,1);
const double clhs58 =             clhs19 + clhs57*clhs8;
const double clhs59 =             DN(0,1)*N[1];
const double clhs60 =             C(0,1)*DN(2,0) + clhs34;
const double clhs61 =             DN(2,0)*clhs54;
const double clhs62 =             C(1,1)*DN(2,1) + C(1,2)*DN(2,0);
const double clhs63 =             DN(0,1)*DN(2,1);
const double clhs64 =             clhs30 + clhs63*clhs8;
const double clhs65 =             DN(0,1)*N[2];
const double clhs66 =             C(0,1)*DN(3,0) + clhs45;
const double clhs67 =             DN(3,0)*clhs54;
const double clhs68 =             C(1,1)*DN(3,1) + C(1,2)*DN(3,0);
const double clhs69 =             DN(0,1)*DN(3,1);
const double clhs70 =             clhs41 + clhs69*clhs8;
const double clhs71 =             DN(0,1)*N[3];
const double clhs72 =             1.0/clhs7;
const double clhs73 =             clhs0*clhs72;
const double clhs74 =             clhs73 + 1;
const double clhs75 =             DN(1,0)*N[0];
const double clhs76 =             DN(1,1)*N[0];
const double clhs77 =             clhs72*(clhs20 + clhs57);
const double clhs78 =             DN(2,0)*N[0];
const double clhs79 =             DN(2,1)*N[0];
const double clhs80 =             clhs72*(clhs31 + clhs63);
const double clhs81 =             DN(3,0)*N[0];
const double clhs82 =             DN(3,1)*N[0];
const double clhs83 =             clhs72*(clhs42 + clhs69);
const double clhs84 =             pow(N[1], 2)*clhs0;
const double clhs85 =             pow(DN(1,0), 2);
const double clhs86 =             DN(1,0)*clhs8;
const double clhs87 =             DN(1,1)*clhs86;
const double clhs88 =             DN(1,0)*N[1];
const double clhs89 =             N[1]*clhs0;
const double clhs90 =             N[2]*clhs89;
const double clhs91 =             DN(1,0)*DN(2,0);
const double clhs92 =             clhs8*clhs91 + clhs90;
const double clhs93 =             DN(2,1)*clhs86;
const double clhs94 =             DN(1,0)*N[2];
const double clhs95 =             N[3]*clhs89;
const double clhs96 =             DN(1,0)*DN(3,0);
const double clhs97 =             clhs8*clhs96 + clhs95;
const double clhs98 =             DN(3,1)*clhs86;
const double clhs99 =             DN(1,0)*N[3];
const double clhs100 =             pow(DN(1,1), 2);
const double clhs101 =             DN(1,1)*N[1];
const double clhs102 =             DN(1,1)*clhs8;
const double clhs103 =             DN(2,0)*clhs102;
const double clhs104 =             DN(1,1)*DN(2,1);
const double clhs105 =             clhs104*clhs8 + clhs90;
const double clhs106 =             DN(1,1)*N[2];
const double clhs107 =             DN(3,0)*clhs102;
const double clhs108 =             DN(1,1)*DN(3,1);
const double clhs109 =             clhs108*clhs8 + clhs95;
const double clhs110 =             DN(1,1)*N[3];
const double clhs111 =             DN(2,0)*N[1];
const double clhs112 =             DN(2,1)*N[1];
const double clhs113 =             clhs72*(clhs104 + clhs91);
const double clhs114 =             DN(3,0)*N[1];
const double clhs115 =             DN(3,1)*N[1];
const double clhs116 =             clhs72*(clhs108 + clhs96);
const double clhs117 =             pow(N[2], 2)*clhs0;
const double clhs118 =             pow(DN(2,0), 2);
const double clhs119 =             DN(2,0)*clhs8;
const double clhs120 =             DN(2,1)*clhs119;
const double clhs121 =             DN(2,0)*N[2];
const double clhs122 =             N[2]*N[3]*clhs0;
const double clhs123 =             DN(2,0)*DN(3,0);
const double clhs124 =             clhs122 + clhs123*clhs8;
const double clhs125 =             DN(3,1)*clhs119;
const double clhs126 =             DN(2,0)*N[3];
const double clhs127 =             pow(DN(2,1), 2);
const double clhs128 =             DN(2,1)*N[2];
const double clhs129 =             DN(3,0)*clhs8;
const double clhs130 =             DN(2,1)*clhs129;
const double clhs131 =             DN(2,1)*DN(3,1);
const double clhs132 =             clhs122 + clhs131*clhs8;
const double clhs133 =             DN(2,1)*N[3];
const double clhs134 =             DN(3,0)*N[2];
const double clhs135 =             DN(3,1)*N[2];
const double clhs136 =             clhs72*(clhs123 + clhs131);
const double clhs137 =             pow(N[3], 2)*clhs0;
const double clhs138 =             pow(DN(3,0), 2);
const double clhs139 =             DN(3,1)*clhs129;
const double clhs140 =             DN(3,0)*N[3];
const double clhs141 =             pow(DN(3,1), 2);
const double clhs142 =             DN(3,1)*N[3];
            lhs(0,0)=DN(0,0)*clhs2 + DN(0,1)*clhs4 + clhs1 + clhs5*clhs8;
            lhs(0,1)=DN(0,0)*clhs9 + DN(0,1)*clhs11 + clhs13;
            lhs(0,2)=-clhs14;
            lhs(0,3)=DN(0,0)*clhs15 + DN(0,1)*clhs17 + clhs21;
            lhs(0,4)=DN(0,0)*clhs22 + DN(0,1)*clhs24 + clhs25;
            lhs(0,5)=-clhs26;
            lhs(0,6)=DN(0,0)*clhs27 + DN(0,1)*clhs29 + clhs32;
            lhs(0,7)=DN(0,0)*clhs33 + DN(0,1)*clhs35 + clhs36;
            lhs(0,8)=-clhs37;
            lhs(0,9)=DN(0,0)*clhs38 + DN(0,1)*clhs40 + clhs43;
            lhs(0,10)=DN(0,0)*clhs44 + DN(0,1)*clhs46 + clhs47;
            lhs(0,11)=-clhs48;
            lhs(1,0)=DN(0,0)*clhs4 + DN(0,1)*clhs49 + clhs13;
            lhs(1,1)=DN(0,0)*clhs11 + DN(0,1)*clhs50 + clhs1 + clhs51*clhs8;
            lhs(1,2)=-clhs52;
            lhs(1,3)=DN(0,0)*clhs17 + DN(0,1)*clhs53 + clhs55;
            lhs(1,4)=DN(0,0)*clhs24 + DN(0,1)*clhs56 + clhs58;
            lhs(1,5)=-clhs59;
            lhs(1,6)=DN(0,0)*clhs29 + DN(0,1)*clhs60 + clhs61;
            lhs(1,7)=DN(0,0)*clhs35 + DN(0,1)*clhs62 + clhs64;
            lhs(1,8)=-clhs65;
            lhs(1,9)=DN(0,0)*clhs40 + DN(0,1)*clhs66 + clhs67;
            lhs(1,10)=DN(0,0)*clhs46 + DN(0,1)*clhs68 + clhs70;
            lhs(1,11)=-clhs71;
            lhs(2,0)=clhs14*clhs74;
            lhs(2,1)=clhs52*clhs74;
            lhs(2,2)=clhs72*(clhs5 + clhs51);
            lhs(2,3)=clhs26*clhs73 + clhs75;
            lhs(2,4)=clhs59*clhs73 + clhs76;
            lhs(2,5)=clhs77;
            lhs(2,6)=clhs37*clhs73 + clhs78;
            lhs(2,7)=clhs65*clhs73 + clhs79;
            lhs(2,8)=clhs80;
            lhs(2,9)=clhs48*clhs73 + clhs81;
            lhs(2,10)=clhs71*clhs73 + clhs82;
            lhs(2,11)=clhs83;
            lhs(3,0)=DN(1,0)*clhs2 + DN(1,1)*clhs4 + clhs21;
            lhs(3,1)=DN(1,0)*clhs9 + DN(1,1)*clhs11 + clhs55;
            lhs(3,2)=-clhs75;
            lhs(3,3)=DN(1,0)*clhs15 + DN(1,1)*clhs17 + clhs8*clhs85 + clhs84;
            lhs(3,4)=DN(1,0)*clhs22 + DN(1,1)*clhs24 + clhs87;
            lhs(3,5)=-clhs88;
            lhs(3,6)=DN(1,0)*clhs27 + DN(1,1)*clhs29 + clhs92;
            lhs(3,7)=DN(1,0)*clhs33 + DN(1,1)*clhs35 + clhs93;
            lhs(3,8)=-clhs94;
            lhs(3,9)=DN(1,0)*clhs38 + DN(1,1)*clhs40 + clhs97;
            lhs(3,10)=DN(1,0)*clhs44 + DN(1,1)*clhs46 + clhs98;
            lhs(3,11)=-clhs99;
            lhs(4,0)=DN(1,0)*clhs4 + DN(1,1)*clhs49 + clhs25;
            lhs(4,1)=DN(1,0)*clhs11 + DN(1,1)*clhs50 + clhs58;
            lhs(4,2)=-clhs76;
            lhs(4,3)=DN(1,0)*clhs17 + DN(1,1)*clhs53 + clhs87;
            lhs(4,4)=DN(1,0)*clhs24 + DN(1,1)*clhs56 + clhs100*clhs8 + clhs84;
            lhs(4,5)=-clhs101;
            lhs(4,6)=DN(1,0)*clhs29 + DN(1,1)*clhs60 + clhs103;
            lhs(4,7)=DN(1,0)*clhs35 + DN(1,1)*clhs62 + clhs105;
            lhs(4,8)=-clhs106;
            lhs(4,9)=DN(1,0)*clhs40 + DN(1,1)*clhs66 + clhs107;
            lhs(4,10)=DN(1,0)*clhs46 + DN(1,1)*clhs68 + clhs109;
            lhs(4,11)=-clhs110;
            lhs(5,0)=clhs26 + clhs73*clhs75;
            lhs(5,1)=clhs59 + clhs73*clhs76;
            lhs(5,2)=clhs77;
            lhs(5,3)=clhs74*clhs88;
            lhs(5,4)=clhs101*clhs74;
            lhs(5,5)=clhs72*(clhs100 + clhs85);
            lhs(5,6)=clhs111 + clhs73*clhs94;
            lhs(5,7)=clhs106*clhs73 + clhs112;
            lhs(5,8)=clhs113;
            lhs(5,9)=clhs114 + clhs73*clhs99;
            lhs(5,10)=clhs110*clhs73 + clhs115;
            lhs(5,11)=clhs116;
            lhs(6,0)=DN(2,0)*clhs2 + DN(2,1)*clhs4 + clhs32;
            lhs(6,1)=DN(2,0)*clhs9 + DN(2,1)*clhs11 + clhs61;
            lhs(6,2)=-clhs78;
            lhs(6,3)=DN(2,0)*clhs15 + DN(2,1)*clhs17 + clhs92;
            lhs(6,4)=DN(2,0)*clhs22 + DN(2,1)*clhs24 + clhs103;
            lhs(6,5)=-clhs111;
            lhs(6,6)=DN(2,0)*clhs27 + DN(2,1)*clhs29 + clhs117 + clhs118*clhs8;
            lhs(6,7)=DN(2,0)*clhs33 + DN(2,1)*clhs35 + clhs120;
            lhs(6,8)=-clhs121;
            lhs(6,9)=DN(2,0)*clhs38 + DN(2,1)*clhs40 + clhs124;
            lhs(6,10)=DN(2,0)*clhs44 + DN(2,1)*clhs46 + clhs125;
            lhs(6,11)=-clhs126;
            lhs(7,0)=DN(2,0)*clhs4 + DN(2,1)*clhs49 + clhs36;
            lhs(7,1)=DN(2,0)*clhs11 + DN(2,1)*clhs50 + clhs64;
            lhs(7,2)=-clhs79;
            lhs(7,3)=DN(2,0)*clhs17 + DN(2,1)*clhs53 + clhs93;
            lhs(7,4)=DN(2,0)*clhs24 + DN(2,1)*clhs56 + clhs105;
            lhs(7,5)=-clhs112;
            lhs(7,6)=DN(2,0)*clhs29 + DN(2,1)*clhs60 + clhs120;
            lhs(7,7)=DN(2,0)*clhs35 + DN(2,1)*clhs62 + clhs117 + clhs127*clhs8;
            lhs(7,8)=-clhs128;
            lhs(7,9)=DN(2,0)*clhs40 + DN(2,1)*clhs66 + clhs130;
            lhs(7,10)=DN(2,0)*clhs46 + DN(2,1)*clhs68 + clhs132;
            lhs(7,11)=-clhs133;
            lhs(8,0)=clhs37 + clhs73*clhs78;
            lhs(8,1)=clhs65 + clhs73*clhs79;
            lhs(8,2)=clhs80;
            lhs(8,3)=clhs111*clhs73 + clhs94;
            lhs(8,4)=clhs106 + clhs112*clhs73;
            lhs(8,5)=clhs113;
            lhs(8,6)=clhs121*clhs74;
            lhs(8,7)=clhs128*clhs74;
            lhs(8,8)=clhs72*(clhs118 + clhs127);
            lhs(8,9)=clhs126*clhs73 + clhs134;
            lhs(8,10)=clhs133*clhs73 + clhs135;
            lhs(8,11)=clhs136;
            lhs(9,0)=DN(3,0)*clhs2 + DN(3,1)*clhs4 + clhs43;
            lhs(9,1)=DN(3,0)*clhs9 + DN(3,1)*clhs11 + clhs67;
            lhs(9,2)=-clhs81;
            lhs(9,3)=DN(3,0)*clhs15 + DN(3,1)*clhs17 + clhs97;
            lhs(9,4)=DN(3,0)*clhs22 + DN(3,1)*clhs24 + clhs107;
            lhs(9,5)=-clhs114;
            lhs(9,6)=DN(3,0)*clhs27 + DN(3,1)*clhs29 + clhs124;
            lhs(9,7)=DN(3,0)*clhs33 + DN(3,1)*clhs35 + clhs130;
            lhs(9,8)=-clhs134;
            lhs(9,9)=DN(3,0)*clhs38 + DN(3,1)*clhs40 + clhs137 + clhs138*clhs8;
            lhs(9,10)=DN(3,0)*clhs44 + DN(3,1)*clhs46 + clhs139;
            lhs(9,11)=-clhs140;
            lhs(10,0)=DN(3,0)*clhs4 + DN(3,1)*clhs49 + clhs47;
            lhs(10,1)=DN(3,0)*clhs11 + DN(3,1)*clhs50 + clhs70;
            lhs(10,2)=-clhs82;
            lhs(10,3)=DN(3,0)*clhs17 + DN(3,1)*clhs53 + clhs98;
            lhs(10,4)=DN(3,0)*clhs24 + DN(3,1)*clhs56 + clhs109;
            lhs(10,5)=-clhs115;
            lhs(10,6)=DN(3,0)*clhs29 + DN(3,1)*clhs60 + clhs125;
            lhs(10,7)=DN(3,0)*clhs35 + DN(3,1)*clhs62 + clhs132;
            lhs(10,8)=-clhs135;
            lhs(10,9)=DN(3,0)*clhs40 + DN(3,1)*clhs66 + clhs139;
            lhs(10,10)=DN(3,0)*clhs46 + DN(3,1)*clhs68 + clhs137 + clhs141*clhs8;
            lhs(10,11)=-clhs142;
            lhs(11,0)=clhs48 + clhs73*clhs81;
            lhs(11,1)=clhs71 + clhs73*clhs82;
            lhs(11,2)=clhs83;
            lhs(11,3)=clhs114*clhs73 + clhs99;
            lhs(11,4)=clhs110 + clhs115*clhs73;
            lhs(11,5)=clhs116;
            lhs(11,6)=clhs126 + clhs134*clhs73;
            lhs(11,7)=clhs133 + clhs135*clhs73;
            lhs(11,8)=clhs136;
            lhs(11,9)=clhs140*clhs74;
            lhs(11,10)=clhs142*clhs74;
            lhs(11,11)=clhs72*(clhs138 + clhs141);


    // Add intermediate results to local system
    noalias(rLHS) += lhs * rData.Weight;
}

template <>
void SymbolicStokes<SymbolicStokesData<3,4>>::ComputeGaussPointLHSContribution(
    SymbolicStokesData<3,4>& rData,
    MatrixType& rLHS)
{
    const double rho = rData.Density;
    const double mu = rData.EffectiveViscosity;

    const double h = rData.ElementSize;
    const double dt = rData.DeltaTime;
    const double bdf0 = rData.bdf0;
    const double dyn_tau = rData.DynamicTau;

    // Get constitutive matrix
    const Matrix& C = rData.C;

    // Get shape function values
    const auto& N = rData.N;
    const auto& DN = rData.DN_DX;

    // Stabilization parameters
    constexpr double stab_c1 = 4.0;

    auto& lhs = rData.lhs;

    const double clhs0 =             bdf0*rho;
const double clhs1 =             pow(N[0], 2)*clhs0;
const double clhs2 =             C(0,0)*DN(0,0) + C(0,3)*DN(0,1) + C(0,5)*DN(0,2);
const double clhs3 =             C(0,3)*DN(0,0);
const double clhs4 =             C(3,3)*DN(0,1) + C(3,5)*DN(0,2) + clhs3;
const double clhs5 =             C(0,5)*DN(0,0);
const double clhs6 =             C(3,5)*DN(0,1) + C(5,5)*DN(0,2) + clhs5;
const double clhs7 =             pow(DN(0,0), 2);
const double clhs8 =             pow(h, 2);
const double clhs9 =             dyn_tau*rho/dt + mu*stab_c1/clhs8;
const double clhs10 =             1.0*clhs8*clhs9/stab_c1;
const double clhs11 =             C(0,1)*DN(0,1) + C(0,4)*DN(0,2) + clhs3;
const double clhs12 =             C(1,3)*DN(0,1);
const double clhs13 =             C(3,3)*DN(0,0) + C(3,4)*DN(0,2) + clhs12;
const double clhs14 =             C(3,5)*DN(0,0);
const double clhs15 =             C(4,5)*DN(0,2);
const double clhs16 =             C(1,5)*DN(0,1) + clhs14 + clhs15;
const double clhs17 =             DN(0,0)*clhs10;
const double clhs18 =             DN(0,1)*clhs17;
const double clhs19 =             C(0,2)*DN(0,2) + C(0,4)*DN(0,1) + clhs5;
const double clhs20 =             C(3,4)*DN(0,1);
const double clhs21 =             C(2,3)*DN(0,2) + clhs14 + clhs20;
const double clhs22 =             C(2,5)*DN(0,2);
const double clhs23 =             C(4,5)*DN(0,1) + C(5,5)*DN(0,0) + clhs22;
const double clhs24 =             DN(0,2)*clhs17;
const double clhs25 =             DN(0,0)*N[0];
const double clhs26 =             C(0,0)*DN(1,0) + C(0,3)*DN(1,1) + C(0,5)*DN(1,2);
const double clhs27 =             C(0,3)*DN(1,0);
const double clhs28 =             C(3,3)*DN(1,1) + C(3,5)*DN(1,2) + clhs27;
const double clhs29 =             C(0,5)*DN(1,0);
const double clhs30 =             C(3,5)*DN(1,1) + C(5,5)*DN(1,2) + clhs29;
const double clhs31 =             N[0]*clhs0;
const double clhs32 =             N[1]*clhs31;
const double clhs33 =             DN(0,0)*DN(1,0);
const double clhs34 =             clhs10*clhs33 + clhs32;
const double clhs35 =             C(0,1)*DN(1,1) + C(0,4)*DN(1,2) + clhs27;
const double clhs36 =             C(1,3)*DN(1,1);
const double clhs37 =             C(3,3)*DN(1,0) + C(3,4)*DN(1,2) + clhs36;
const double clhs38 =             C(3,5)*DN(1,0);
const double clhs39 =             C(4,5)*DN(1,2);
const double clhs40 =             C(1,5)*DN(1,1) + clhs38 + clhs39;
const double clhs41 =             DN(1,1)*clhs17;
const double clhs42 =             C(0,2)*DN(1,2) + C(0,4)*DN(1,1) + clhs29;
const double clhs43 =             C(3,4)*DN(1,1);
const double clhs44 =             C(2,3)*DN(1,2) + clhs38 + clhs43;
const double clhs45 =             C(2,5)*DN(1,2);
const double clhs46 =             C(4,5)*DN(1,1) + C(5,5)*DN(1,0) + clhs45;
const double clhs47 =             DN(1,2)*clhs17;
const double clhs48 =             DN(0,0)*N[1];
const double clhs49 =             C(0,0)*DN(2,0) + C(0,3)*DN(2,1) + C(0,5)*DN(2,2);
const double clhs50 =             C(0,3)*DN(2,0);
const double clhs51 =             C(3,3)*DN(2,1) + C(3,5)*DN(2,2) + clhs50;
const double clhs52 =             C(0,5)*DN(2,0);
const double clhs53 =             C(3,5)*DN(2,1) + C(5,5)*DN(2,2) + clhs52;
const double clhs54 =             N[2]*clhs31;
const double clhs55 =             DN(0,0)*DN(2,0);
const double clhs56 =             clhs10*clhs55 + clhs54;
const double clhs57 =             C(0,1)*DN(2,1) + C(0,4)*DN(2,2) + clhs50;
const double clhs58 =             C(1,3)*DN(2,1);
const double clhs59 =             C(3,3)*DN(2,0) + C(3,4)*DN(2,2) + clhs58;
const double clhs60 =             C(3,5)*DN(2,0);
const double clhs61 =             C(4,5)*DN(2,2);
const double clhs62 =             C(1,5)*DN(2,1) + clhs60 + clhs61;
const double clhs63 =             DN(2,1)*clhs17;
const double clhs64 =             C(0,2)*DN(2,2) + C(0,4)*DN(2,1) + clhs52;
const double clhs65 =             C(3,4)*DN(2,1);
const double clhs66 =             C(2,3)*DN(2,2) + clhs60 + clhs65;
const double clhs67 =             C(2,5)*DN(2,2);
const double clhs68 =             C(4,5)*DN(2,1) + C(5,5)*DN(2,0) + clhs67;
const double clhs69 =             DN(2,2)*clhs17;
const double clhs70 =             DN(0,0)*N[2];
const double clhs71 =             C(0,0)*DN(3,0) + C(0,3)*DN(3,1) + C(0,5)*DN(3,2);
const double clhs72 =             C(0,3)*DN(3,0);
const double clhs73 =             C(3,3)*DN(3,1) + C(3,5)*DN(3,2) + clhs72;
const double clhs74 =             C(0,5)*DN(3,0);
const double clhs75 =             C(3,5)*DN(3,1) + C(5,5)*DN(3,2) + clhs74;
const double clhs76 =             N[3]*clhs31;
const double clhs77 =             DN(0,0)*DN(3,0);
const double clhs78 =             clhs10*clhs77 + clhs76;
const double clhs79 =             C(0,1)*DN(3,1) + C(0,4)*DN(3,2) + clhs72;
const double clhs80 =             C(1,3)*DN(3,1);
const double clhs81 =             C(3,3)*DN(3,0) + C(3,4)*DN(3,2) + clhs80;
const double clhs82 =             C(3,5)*DN(3,0);
const double clhs83 =             C(4,5)*DN(3,2);
const double clhs84 =             C(1,5)*DN(3,1) + clhs82 + clhs83;
const double clhs85 =             DN(3,1)*clhs17;
const double clhs86 =             C(0,2)*DN(3,2) + C(0,4)*DN(3,1) + clhs74;
const double clhs87 =             C(3,4)*DN(3,1);
const double clhs88 =             C(2,3)*DN(3,2) + clhs82 + clhs87;
const double clhs89 =             C(2,5)*DN(3,2);
const double clhs90 =             C(4,5)*DN(3,1) + C(5,5)*DN(3,0) + clhs89;
const double clhs91 =             DN(3,2)*clhs17;
const double clhs92 =             DN(0,0)*N[3];
const double clhs93 =             C(0,1)*DN(0,0) + C(1,5)*DN(0,2) + clhs12;
const double clhs94 =             C(0,4)*DN(0,0) + clhs15 + clhs20;
const double clhs95 =             C(1,1)*DN(0,1) + C(1,3)*DN(0,0) + C(1,4)*DN(0,2);
const double clhs96 =             C(1,4)*DN(0,1);
const double clhs97 =             C(3,4)*DN(0,0) + C(4,4)*DN(0,2) + clhs96;
const double clhs98 =             pow(DN(0,1), 2);
const double clhs99 =             C(1,2)*DN(0,2) + C(1,5)*DN(0,0) + clhs96;
const double clhs100 =             C(2,4)*DN(0,2);
const double clhs101 =             C(4,4)*DN(0,1) + C(4,5)*DN(0,0) + clhs100;
const double clhs102 =             DN(0,1)*clhs10;
const double clhs103 =             DN(0,2)*clhs102;
const double clhs104 =             DN(0,1)*N[0];
const double clhs105 =             C(0,1)*DN(1,0) + C(1,5)*DN(1,2) + clhs36;
const double clhs106 =             C(0,4)*DN(1,0) + clhs39 + clhs43;
const double clhs107 =             DN(1,0)*clhs102;
const double clhs108 =             C(1,1)*DN(1,1) + C(1,3)*DN(1,0) + C(1,4)*DN(1,2);
const double clhs109 =             C(1,4)*DN(1,1);
const double clhs110 =             C(3,4)*DN(1,0) + C(4,4)*DN(1,2) + clhs109;
const double clhs111 =             DN(0,1)*DN(1,1);
const double clhs112 =             clhs10*clhs111 + clhs32;
const double clhs113 =             C(1,2)*DN(1,2) + C(1,5)*DN(1,0) + clhs109;
const double clhs114 =             C(2,4)*DN(1,2);
const double clhs115 =             C(4,4)*DN(1,1) + C(4,5)*DN(1,0) + clhs114;
const double clhs116 =             DN(1,2)*clhs102;
const double clhs117 =             DN(0,1)*N[1];
const double clhs118 =             C(0,1)*DN(2,0) + C(1,5)*DN(2,2) + clhs58;
const double clhs119 =             C(0,4)*DN(2,0) + clhs61 + clhs65;
const double clhs120 =             DN(2,0)*clhs102;
const double clhs121 =             C(1,1)*DN(2,1) + C(1,3)*DN(2,0) + C(1,4)*DN(2,2);
const double clhs122 =             C(1,4)*DN(2,1);
const double clhs123 =             C(3,4)*DN(2,0) + C(4,4)*DN(2,2) + clhs122;
const double clhs124 =             DN(0,1)*DN(2,1);
const double clhs125 =             clhs10*clhs124 + clhs54;
const double clhs126 =             C(1,2)*DN(2,2) + C(1,5)*DN(2,0) + clhs122;
const double clhs127 =             C(2,4)*DN(2,2);
const double clhs128 =             C(4,4)*DN(2,1) + C(4,5)*DN(2,0) + clhs127;
const double clhs129 =             DN(2,2)*clhs102;
const double clhs130 =             DN(0,1)*N[2];
const double clhs131 =             C(0,1)*DN(3,0) + C(1,5)*DN(3,2) + clhs80;
const double clhs132 =             C(0,4)*DN(3,0) + clhs83 + clhs87;
const double clhs133 =             DN(3,0)*clhs102;
const double clhs134 =             C(1,1)*DN(3,1) + C(1,3)*DN(3,0) + C(1,4)*DN(3,2);
const double clhs135 =             C(1,4)*DN(3,1);
const double clhs136 =             C(3,4)*DN(3,0) + C(4,4)*DN(3,2) + clhs135;
const double clhs137 =             DN(0,1)*DN(3,1);
const double clhs138 =             clhs10*clhs137 + clhs76;
const double clhs139 =             C(1,2)*DN(3,2) + C(1,5)*DN(3,0) + clhs135;
const double clhs140 =             C(2,4)*DN(3,2);
const double clhs141 =             C(4,4)*DN(3,1) + C(4,5)*DN(3,0) + clhs140;
const double clhs142 =             DN(3,2)*clhs102;
const double clhs143 =             DN(0,1)*N[3];
const double clhs144 =             C(0,2)*DN(0,0) + C(2,3)*DN(0,1) + clhs22;
const double clhs145 =             C(1,2)*DN(0,1) + C(2,3)*DN(0,0) + clhs100;
const double clhs146 =             C(2,2)*DN(0,2) + C(2,4)*DN(0,1) + C(2,5)*DN(0,0);
const double clhs147 =             pow(DN(0,2), 2);
const double clhs148 =             DN(0,2)*N[0];
const double clhs149 =             C(0,2)*DN(1,0) + C(2,3)*DN(1,1) + clhs45;
const double clhs150 =             DN(0,2)*clhs10;
const double clhs151 =             DN(1,0)*clhs150;
const double clhs152 =             C(1,2)*DN(1,1) + C(2,3)*DN(1,0) + clhs114;
const double clhs153 =             DN(1,1)*clhs150;
const double clhs154 =             C(2,2)*DN(1,2) + C(2,4)*DN(1,1) + C(2,5)*DN(1,0);
const double clhs155 =             DN(0,2)*DN(1,2);
const double clhs156 =             clhs10*clhs155 + clhs32;
const double clhs157 =             DN(0,2)*N[1];
const double clhs158 =             C(0,2)*DN(2,0) + C(2,3)*DN(2,1) + clhs67;
const double clhs159 =             DN(2,0)*clhs150;
const double clhs160 =             C(1,2)*DN(2,1) + C(2,3)*DN(2,0) + clhs127;
const double clhs161 =             DN(2,1)*clhs150;
const double clhs162 =             C(2,2)*DN(2,2) + C(2,4)*DN(2,1) + C(2,5)*DN(2,0);
const double clhs163 =             DN(0,2)*DN(2,2);
const double clhs164 =             clhs10*clhs163 + clhs54;
const double clhs165 =             DN(0,2)*N[2];
const double clhs166 =             C(0,2)*DN(3,0) + C(2,3)*DN(3,1) + clhs89;
const double clhs167 =             DN(3,0)*clhs150;
const double clhs168 =             C(1,2)*DN(3,1) + C(2,3)*DN(3,0) + clhs140;
const double clhs169 =             DN(3,1)*clhs150;
const double clhs170 =             C(2,2)*DN(3,2) + C(2,4)*DN(3,1) + C(2,5)*DN(3,0);
const double clhs171 =             DN(0,2)*DN(3,2);
const double clhs172 =             clhs10*clhs171 + clhs76;
const double clhs173 =             DN(0,2)*N[3];
const double clhs174 =             1.0/clhs9;
const double clhs175 =             clhs0*clhs174;
const double clhs176 =             clhs175 + 1;
const double clhs177 =             DN(1,0)*N[0];
const double clhs178 =             DN(1,1)*N[0];
const double clhs179 =             DN(1,2)*N[0];
const double clhs180 =             clhs174*(clhs111 + clhs155 + clhs33);
const double clhs181 =             DN(2,0)*N[0];
const double clhs182 =             DN(2,1)*N[0];
const double clhs183 =             DN(2,2)*N[0];
const double clhs184 =             clhs174*(clhs124 + clhs163 + clhs55);
const double clhs185 =             DN(3,0)*N[0];
const double clhs186 =             DN(3,1)*N[0];
const double clhs187 =             DN(3,2)*N[0];
const double clhs188 =             clhs174*(clhs137 + clhs171 + clhs77);
const double clhs189 =             pow(N[1], 2)*clhs0;
const double clhs190 =             pow(DN(1,0), 2);
const double clhs191 =             DN(1,0)*clhs10;
const double clhs192 =             DN(1,1)*clhs191;
const double clhs193 =             DN(1,2)*clhs191;
const double clhs194 =             DN(1,0)*N[1];
const double clhs195 =             N[1]*clhs0;
const double clhs196 =             N[2]*clhs195;
const double clhs197 =             DN(1,0)*DN(2,0);
const double clhs198 =             clhs10*clhs197 + clhs196;
const double clhs199 =             DN(2,1)*clhs191;
const double clhs200 =             DN(2,2)*clhs191;
const double clhs201 =             DN(1,0)*N[2];
const double clhs202 =             N[3]*clhs195;
const double clhs203 =             DN(1,0)*DN(3,0);
const double clhs204 =             clhs10*clhs203 + clhs202;
const double clhs205 =             DN(3,1)*clhs191;
const double clhs206 =             DN(3,2)*clhs191;
const double clhs207 =             DN(1,0)*N[3];
const double clhs208 =             pow(DN(1,1), 2);
const double clhs209 =             DN(1,1)*clhs10;
const double clhs210 =             DN(1,2)*clhs209;
const double clhs211 =             DN(1,1)*N[1];
const double clhs212 =             DN(2,0)*clhs209;
const double clhs213 =             DN(1,1)*DN(2,1);
const double clhs214 =             clhs10*clhs213 + clhs196;
const double clhs215 =             DN(2,2)*clhs209;
const double clhs216 =             DN(1,1)*N[2];
const double clhs217 =             DN(3,0)*clhs209;
const double clhs218 =             DN(1,1)*DN(3,1);
const double clhs219 =             clhs10*clhs218 + clhs202;
const double clhs220 =             DN(3,2)*clhs209;
const double clhs221 =             DN(1,1)*N[3];
const double clhs222 =             pow(DN(1,2), 2);
const double clhs223 =             DN(1,2)*N[1];
const double clhs224 =             DN(1,2)*clhs10;
const double clhs225 =             DN(2,0)*clhs224;
const double clhs226 =             DN(2,1)*clhs224;
const double clhs227 =             DN(1,2)*DN(2,2);
const double clhs228 =             clhs10*clhs227 + clhs196;
const double clhs229 =             DN(1,2)*N[2];
const double clhs230 =             DN(3,0)*clhs224;
const double clhs231 =             DN(3,1)*clhs224;
const double clhs232 =             DN(1,2)*DN(3,2);
const double clhs233 =             clhs10*clhs232 + clhs202;
const double clhs234 =             DN(1,2)*N[3];
const double clhs235 =             DN(2,0)*N[1];
const double clhs236 =             DN(2,1)*N[1];
const double clhs237 =             DN(2,2)*N[1];
const double clhs238 =             clhs174*(clhs197 + clhs213 + clhs227);
const double clhs239 =             DN(3,0)*N[1];
const double clhs240 =             DN(3,1)*N[1];
const double clhs241 =             DN(3,2)*N[1];
const double clhs242 =             clhs174*(clhs203 + clhs218 + clhs232);
const double clhs243 =             pow(N[2], 2)*clhs0;
const double clhs244 =             pow(DN(2,0), 2);
const double clhs245 =             DN(2,0)*clhs10;
const double clhs246 =             DN(2,1)*clhs245;
const double clhs247 =             DN(2,2)*clhs245;
const double clhs248 =             DN(2,0)*N[2];
const double clhs249 =             N[2]*N[3]*clhs0;
const double clhs250 =             DN(2,0)*DN(3,0);
const double clhs251 =             clhs10*clhs250 + clhs249;
const double clhs252 =             DN(3,1)*clhs245;
const double clhs253 =             DN(3,2)*clhs245;
const double clhs254 =             DN(2,0)*N[3];
const double clhs255 =             pow(DN(2,1), 2);
const double clhs256 =             DN(2,1)*clhs10;
const double clhs257 =             DN(2,2)*clhs256;
const double clhs258 =             DN(2,1)*N[2];
const double clhs259 =             DN(3,0)*clhs256;
const double clhs260 =             DN(2,1)*DN(3,1);
const double clhs261 =             clhs10*clhs260 + clhs249;
const double clhs262 =             DN(3,2)*clhs256;
const double clhs263 =             DN(2,1)*N[3];
const double clhs264 =             pow(DN(2,2), 2);
const double clhs265 =             DN(2,2)*N[2];
const double clhs266 =             DN(2,2)*clhs10;
const double clhs267 =             DN(3,0)*clhs266;
const double clhs268 =             DN(3,1)*clhs266;
const double clhs269 =             DN(2,2)*DN(3,2);
const double clhs270 =             clhs10*clhs269 + clhs249;
const double clhs271 =             DN(2,2)*N[3];
const double clhs272 =             DN(3,0)*N[2];
const double clhs273 =             DN(3,1)*N[2];
const double clhs274 =             DN(3,2)*N[2];
const double clhs275 =             clhs174*(clhs250 + clhs260 + clhs269);
const double clhs276 =             pow(N[3], 2)*clhs0;
const double clhs277 =             pow(DN(3,0), 2);
const double clhs278 =             DN(3,0)*clhs10;
const double clhs279 =             DN(3,1)*clhs278;
const double clhs280 =             DN(3,2)*clhs278;
const double clhs281 =             DN(3,0)*N[3];
const double clhs282 =             pow(DN(3,1), 2);
const double clhs283 =             DN(3,1)*DN(3,2)*clhs10;
const double clhs284 =             DN(3,1)*N[3];
const double clhs285 =             pow(DN(3,2), 2);
const double clhs286 =             DN(3,2)*N[3];
            lhs(0,0)=DN(0,0)*clhs2 + DN(0,1)*clhs4 + DN(0,2)*clhs6 + clhs1 + clhs10*clhs7;
            lhs(0,1)=DN(0,0)*clhs11 + DN(0,1)*clhs13 + DN(0,2)*clhs16 + clhs18;
            lhs(0,2)=DN(0,0)*clhs19 + DN(0,1)*clhs21 + DN(0,2)*clhs23 + clhs24;
            lhs(0,3)=-clhs25;
            lhs(0,4)=DN(0,0)*clhs26 + DN(0,1)*clhs28 + DN(0,2)*clhs30 + clhs34;
            lhs(0,5)=DN(0,0)*clhs35 + DN(0,1)*clhs37 + DN(0,2)*clhs40 + clhs41;
            lhs(0,6)=DN(0,0)*clhs42 + DN(0,1)*clhs44 + DN(0,2)*clhs46 + clhs47;
            lhs(0,7)=-clhs48;
            lhs(0,8)=DN(0,0)*clhs49 + DN(0,1)*clhs51 + DN(0,2)*clhs53 + clhs56;
            lhs(0,9)=DN(0,0)*clhs57 + DN(0,1)*clhs59 + DN(0,2)*clhs62 + clhs63;
            lhs(0,10)=DN(0,0)*clhs64 + DN(0,1)*clhs66 + DN(0,2)*clhs68 + clhs69;
            lhs(0,11)=-clhs70;
            lhs(0,12)=DN(0,0)*clhs71 + DN(0,1)*clhs73 + DN(0,2)*clhs75 + clhs78;
            lhs(0,13)=DN(0,0)*clhs79 + DN(0,1)*clhs81 + DN(0,2)*clhs84 + clhs85;
            lhs(0,14)=DN(0,0)*clhs86 + DN(0,1)*clhs88 + DN(0,2)*clhs90 + clhs91;
            lhs(0,15)=-clhs92;
            lhs(1,0)=DN(0,0)*clhs4 + DN(0,1)*clhs93 + DN(0,2)*clhs94 + clhs18;
            lhs(1,1)=DN(0,0)*clhs13 + DN(0,1)*clhs95 + DN(0,2)*clhs97 + clhs1 + clhs10*clhs98;
            lhs(1,2)=DN(0,0)*clhs21 + DN(0,1)*clhs99 + DN(0,2)*clhs101 + clhs103;
            lhs(1,3)=-clhs104;
            lhs(1,4)=DN(0,0)*clhs28 + DN(0,1)*clhs105 + DN(0,2)*clhs106 + clhs107;
            lhs(1,5)=DN(0,0)*clhs37 + DN(0,1)*clhs108 + DN(0,2)*clhs110 + clhs112;
            lhs(1,6)=DN(0,0)*clhs44 + DN(0,1)*clhs113 + DN(0,2)*clhs115 + clhs116;
            lhs(1,7)=-clhs117;
            lhs(1,8)=DN(0,0)*clhs51 + DN(0,1)*clhs118 + DN(0,2)*clhs119 + clhs120;
            lhs(1,9)=DN(0,0)*clhs59 + DN(0,1)*clhs121 + DN(0,2)*clhs123 + clhs125;
            lhs(1,10)=DN(0,0)*clhs66 + DN(0,1)*clhs126 + DN(0,2)*clhs128 + clhs129;
            lhs(1,11)=-clhs130;
            lhs(1,12)=DN(0,0)*clhs73 + DN(0,1)*clhs131 + DN(0,2)*clhs132 + clhs133;
            lhs(1,13)=DN(0,0)*clhs81 + DN(0,1)*clhs134 + DN(0,2)*clhs136 + clhs138;
            lhs(1,14)=DN(0,0)*clhs88 + DN(0,1)*clhs139 + DN(0,2)*clhs141 + clhs142;
            lhs(1,15)=-clhs143;
            lhs(2,0)=DN(0,0)*clhs6 + DN(0,1)*clhs94 + DN(0,2)*clhs144 + clhs24;
            lhs(2,1)=DN(0,0)*clhs16 + DN(0,1)*clhs97 + DN(0,2)*clhs145 + clhs103;
            lhs(2,2)=DN(0,0)*clhs23 + DN(0,1)*clhs101 + DN(0,2)*clhs146 + clhs1 + clhs10*clhs147;
            lhs(2,3)=-clhs148;
            lhs(2,4)=DN(0,0)*clhs30 + DN(0,1)*clhs106 + DN(0,2)*clhs149 + clhs151;
            lhs(2,5)=DN(0,0)*clhs40 + DN(0,1)*clhs110 + DN(0,2)*clhs152 + clhs153;
            lhs(2,6)=DN(0,0)*clhs46 + DN(0,1)*clhs115 + DN(0,2)*clhs154 + clhs156;
            lhs(2,7)=-clhs157;
            lhs(2,8)=DN(0,0)*clhs53 + DN(0,1)*clhs119 + DN(0,2)*clhs158 + clhs159;
            lhs(2,9)=DN(0,0)*clhs62 + DN(0,1)*clhs123 + DN(0,2)*clhs160 + clhs161;
            lhs(2,10)=DN(0,0)*clhs68 + DN(0,1)*clhs128 + DN(0,2)*clhs162 + clhs164;
            lhs(2,11)=-clhs165;
            lhs(2,12)=DN(0,0)*clhs75 + DN(0,1)*clhs132 + DN(0,2)*clhs166 + clhs167;
            lhs(2,13)=DN(0,0)*clhs84 + DN(0,1)*clhs136 + DN(0,2)*clhs168 + clhs169;
            lhs(2,14)=DN(0,0)*clhs90 + DN(0,1)*clhs141 + DN(0,2)*clhs170 + clhs172;
            lhs(2,15)=-clhs173;
            lhs(3,0)=clhs176*clhs25;
            lhs(3,1)=clhs104*clhs176;
            lhs(3,2)=clhs148*clhs176;
            lhs(3,3)=clhs174*(clhs147 + clhs7 + clhs98);
            lhs(3,4)=clhs175*clhs48 + clhs177;
            lhs(3,5)=clhs117*clhs175 + clhs178;
            lhs(3,6)=clhs157*clhs175 + clhs179;
            lhs(3,7)=clhs180;
            lhs(3,8)=clhs175*clhs70 + clhs181;
            lhs(3,9)=clhs130*clhs175 + clhs182;
            lhs(3,10)=clhs165*clhs175 + clhs183;
            lhs(3,11)=clhs184;
            lhs(3,12)=clhs175*clhs92 + clhs185;
            lhs(3,13)=clhs143*clhs175 + clhs186;
            lhs(3,14)=clhs173*clhs175 + clhs187;
            lhs(3,15)=clhs188;
            lhs(4,0)=DN(1,0)*clhs2 + DN(1,1)*clhs4 + DN(1,2)*clhs6 + clhs34;
            lhs(4,1)=DN(1,0)*clhs11 + DN(1,1)*clhs13 + DN(1,2)*clhs16 + clhs107;
            lhs(4,2)=DN(1,0)*clhs19 + DN(1,1)*clhs21 + DN(1,2)*clhs23 + clhs151;
            lhs(4,3)=-clhs177;
            lhs(4,4)=DN(1,0)*clhs26 + DN(1,1)*clhs28 + DN(1,2)*clhs30 + clhs10*clhs190 + clhs189;
            lhs(4,5)=DN(1,0)*clhs35 + DN(1,1)*clhs37 + DN(1,2)*clhs40 + clhs192;
            lhs(4,6)=DN(1,0)*clhs42 + DN(1,1)*clhs44 + DN(1,2)*clhs46 + clhs193;
            lhs(4,7)=-clhs194;
            lhs(4,8)=DN(1,0)*clhs49 + DN(1,1)*clhs51 + DN(1,2)*clhs53 + clhs198;
            lhs(4,9)=DN(1,0)*clhs57 + DN(1,1)*clhs59 + DN(1,2)*clhs62 + clhs199;
            lhs(4,10)=DN(1,0)*clhs64 + DN(1,1)*clhs66 + DN(1,2)*clhs68 + clhs200;
            lhs(4,11)=-clhs201;
            lhs(4,12)=DN(1,0)*clhs71 + DN(1,1)*clhs73 + DN(1,2)*clhs75 + clhs204;
            lhs(4,13)=DN(1,0)*clhs79 + DN(1,1)*clhs81 + DN(1,2)*clhs84 + clhs205;
            lhs(4,14)=DN(1,0)*clhs86 + DN(1,1)*clhs88 + DN(1,2)*clhs90 + clhs206;
            lhs(4,15)=-clhs207;
            lhs(5,0)=DN(1,0)*clhs4 + DN(1,1)*clhs93 + DN(1,2)*clhs94 + clhs41;
            lhs(5,1)=DN(1,0)*clhs13 + DN(1,1)*clhs95 + DN(1,2)*clhs97 + clhs112;
            lhs(5,2)=DN(1,0)*clhs21 + DN(1,1)*clhs99 + DN(1,2)*clhs101 + clhs153;
            lhs(5,3)=-clhs178;
            lhs(5,4)=DN(1,0)*clhs28 + DN(1,1)*clhs105 + DN(1,2)*clhs106 + clhs192;
            lhs(5,5)=DN(1,0)*clhs37 + DN(1,1)*clhs108 + DN(1,2)*clhs110 + clhs10*clhs208 + clhs189;
            lhs(5,6)=DN(1,0)*clhs44 + DN(1,1)*clhs113 + DN(1,2)*clhs115 + clhs210;
            lhs(5,7)=-clhs211;
            lhs(5,8)=DN(1,0)*clhs51 + DN(1,1)*clhs118 + DN(1,2)*clhs119 + clhs212;
            lhs(5,9)=DN(1,0)*clhs59 + DN(1,1)*clhs121 + DN(1,2)*clhs123 + clhs214;
            lhs(5,10)=DN(1,0)*clhs66 + DN(1,1)*clhs126 + DN(1,2)*clhs128 + clhs215;
            lhs(5,11)=-clhs216;
            lhs(5,12)=DN(1,0)*clhs73 + DN(1,1)*clhs131 + DN(1,2)*clhs132 + clhs217;
            lhs(5,13)=DN(1,0)*clhs81 + DN(1,1)*clhs134 + DN(1,2)*clhs136 + clhs219;
            lhs(5,14)=DN(1,0)*clhs88 + DN(1,1)*clhs139 + DN(1,2)*clhs141 + clhs220;
            lhs(5,15)=-clhs221;
            lhs(6,0)=DN(1,0)*clhs6 + DN(1,1)*clhs94 + DN(1,2)*clhs144 + clhs47;
            lhs(6,1)=DN(1,0)*clhs16 + DN(1,1)*clhs97 + DN(1,2)*clhs145 + clhs116;
            lhs(6,2)=DN(1,0)*clhs23 + DN(1,1)*clhs101 + DN(1,2)*clhs146 + clhs156;
            lhs(6,3)=-clhs179;
            lhs(6,4)=DN(1,0)*clhs30 + DN(1,1)*clhs106 + DN(1,2)*clhs149 + clhs193;
            lhs(6,5)=DN(1,0)*clhs40 + DN(1,1)*clhs110 + DN(1,2)*clhs152 + clhs210;
            lhs(6,6)=DN(1,0)*clhs46 + DN(1,1)*clhs115 + DN(1,2)*clhs154 + clhs10*clhs222 + clhs189;
            lhs(6,7)=-clhs223;
            lhs(6,8)=DN(1,0)*clhs53 + DN(1,1)*clhs119 + DN(1,2)*clhs158 + clhs225;
            lhs(6,9)=DN(1,0)*clhs62 + DN(1,1)*clhs123 + DN(1,2)*clhs160 + clhs226;
            lhs(6,10)=DN(1,0)*clhs68 + DN(1,1)*clhs128 + DN(1,2)*clhs162 + clhs228;
            lhs(6,11)=-clhs229;
            lhs(6,12)=DN(1,0)*clhs75 + DN(1,1)*clhs132 + DN(1,2)*clhs166 + clhs230;
            lhs(6,13)=DN(1,0)*clhs84 + DN(1,1)*clhs136 + DN(1,2)*clhs168 + clhs231;
            lhs(6,14)=DN(1,0)*clhs90 + DN(1,1)*clhs141 + DN(1,2)*clhs170 + clhs233;
            lhs(6,15)=-clhs234;
            lhs(7,0)=clhs175*clhs177 + clhs48;
            lhs(7,1)=clhs117 + clhs175*clhs178;
            lhs(7,2)=clhs157 + clhs175*clhs179;
            lhs(7,3)=clhs180;
            lhs(7,4)=clhs176*clhs194;
            lhs(7,5)=clhs176*clhs211;
            lhs(7,6)=clhs176*clhs223;
            lhs(7,7)=clhs174*(clhs190 + clhs208 + clhs222);
            lhs(7,8)=clhs175*clhs201 + clhs235;
            lhs(7,9)=clhs175*clhs216 + clhs236;
            lhs(7,10)=clhs175*clhs229 + clhs237;
            lhs(7,11)=clhs238;
            lhs(7,12)=clhs175*clhs207 + clhs239;
            lhs(7,13)=clhs175*clhs221 + clhs240;
            lhs(7,14)=clhs175*clhs234 + clhs241;
            lhs(7,15)=clhs242;
            lhs(8,0)=DN(2,0)*clhs2 + DN(2,1)*clhs4 + DN(2,2)*clhs6 + clhs56;
            lhs(8,1)=DN(2,0)*clhs11 + DN(2,1)*clhs13 + DN(2,2)*clhs16 + clhs120;
            lhs(8,2)=DN(2,0)*clhs19 + DN(2,1)*clhs21 + DN(2,2)*clhs23 + clhs159;
            lhs(8,3)=-clhs181;
            lhs(8,4)=DN(2,0)*clhs26 + DN(2,1)*clhs28 + DN(2,2)*clhs30 + clhs198;
            lhs(8,5)=DN(2,0)*clhs35 + DN(2,1)*clhs37 + DN(2,2)*clhs40 + clhs212;
            lhs(8,6)=DN(2,0)*clhs42 + DN(2,1)*clhs44 + DN(2,2)*clhs46 + clhs225;
            lhs(8,7)=-clhs235;
            lhs(8,8)=DN(2,0)*clhs49 + DN(2,1)*clhs51 + DN(2,2)*clhs53 + clhs10*clhs244 + clhs243;
            lhs(8,9)=DN(2,0)*clhs57 + DN(2,1)*clhs59 + DN(2,2)*clhs62 + clhs246;
            lhs(8,10)=DN(2,0)*clhs64 + DN(2,1)*clhs66 + DN(2,2)*clhs68 + clhs247;
            lhs(8,11)=-clhs248;
            lhs(8,12)=DN(2,0)*clhs71 + DN(2,1)*clhs73 + DN(2,2)*clhs75 + clhs251;
            lhs(8,13)=DN(2,0)*clhs79 + DN(2,1)*clhs81 + DN(2,2)*clhs84 + clhs252;
            lhs(8,14)=DN(2,0)*clhs86 + DN(2,1)*clhs88 + DN(2,2)*clhs90 + clhs253;
            lhs(8,15)=-clhs254;
            lhs(9,0)=DN(2,0)*clhs4 + DN(2,1)*clhs93 + DN(2,2)*clhs94 + clhs63;
            lhs(9,1)=DN(2,0)*clhs13 + DN(2,1)*clhs95 + DN(2,2)*clhs97 + clhs125;
            lhs(9,2)=DN(2,0)*clhs21 + DN(2,1)*clhs99 + DN(2,2)*clhs101 + clhs161;
            lhs(9,3)=-clhs182;
            lhs(9,4)=DN(2,0)*clhs28 + DN(2,1)*clhs105 + DN(2,2)*clhs106 + clhs199;
            lhs(9,5)=DN(2,0)*clhs37 + DN(2,1)*clhs108 + DN(2,2)*clhs110 + clhs214;
            lhs(9,6)=DN(2,0)*clhs44 + DN(2,1)*clhs113 + DN(2,2)*clhs115 + clhs226;
            lhs(9,7)=-clhs236;
            lhs(9,8)=DN(2,0)*clhs51 + DN(2,1)*clhs118 + DN(2,2)*clhs119 + clhs246;
            lhs(9,9)=DN(2,0)*clhs59 + DN(2,1)*clhs121 + DN(2,2)*clhs123 + clhs10*clhs255 + clhs243;
            lhs(9,10)=DN(2,0)*clhs66 + DN(2,1)*clhs126 + DN(2,2)*clhs128 + clhs257;
            lhs(9,11)=-clhs258;
            lhs(9,12)=DN(2,0)*clhs73 + DN(2,1)*clhs131 + DN(2,2)*clhs132 + clhs259;
            lhs(9,13)=DN(2,0)*clhs81 + DN(2,1)*clhs134 + DN(2,2)*clhs136 + clhs261;
            lhs(9,14)=DN(2,0)*clhs88 + DN(2,1)*clhs139 + DN(2,2)*clhs141 + clhs262;
            lhs(9,15)=-clhs263;
            lhs(10,0)=DN(2,0)*clhs6 + DN(2,1)*clhs94 + DN(2,2)*clhs144 + clhs69;
            lhs(10,1)=DN(2,0)*clhs16 + DN(2,1)*clhs97 + DN(2,2)*clhs145 + clhs129;
            lhs(10,2)=DN(2,0)*clhs23 + DN(2,1)*clhs101 + DN(2,2)*clhs146 + clhs164;
            lhs(10,3)=-clhs183;
            lhs(10,4)=DN(2,0)*clhs30 + DN(2,1)*clhs106 + DN(2,2)*clhs149 + clhs200;
            lhs(10,5)=DN(2,0)*clhs40 + DN(2,1)*clhs110 + DN(2,2)*clhs152 + clhs215;
            lhs(10,6)=DN(2,0)*clhs46 + DN(2,1)*clhs115 + DN(2,2)*clhs154 + clhs228;
            lhs(10,7)=-clhs237;
            lhs(10,8)=DN(2,0)*clhs53 + DN(2,1)*clhs119 + DN(2,2)*clhs158 + clhs247;
            lhs(10,9)=DN(2,0)*clhs62 + DN(2,1)*clhs123 + DN(2,2)*clhs160 + clhs257;
            lhs(10,10)=DN(2,0)*clhs68 + DN(2,1)*clhs128 + DN(2,2)*clhs162 + clhs10*clhs264 + clhs243;
            lhs(10,11)=-clhs265;
            lhs(10,12)=DN(2,0)*clhs75 + DN(2,1)*clhs132 + DN(2,2)*clhs166 + clhs267;
            lhs(10,13)=DN(2,0)*clhs84 + DN(2,1)*clhs136 + DN(2,2)*clhs168 + clhs268;
            lhs(10,14)=DN(2,0)*clhs90 + DN(2,1)*clhs141 + DN(2,2)*clhs170 + clhs270;
            lhs(10,15)=-clhs271;
            lhs(11,0)=clhs175*clhs181 + clhs70;
            lhs(11,1)=clhs130 + clhs175*clhs182;
            lhs(11,2)=clhs165 + clhs175*clhs183;
            lhs(11,3)=clhs184;
            lhs(11,4)=clhs175*clhs235 + clhs201;
            lhs(11,5)=clhs175*clhs236 + clhs216;
            lhs(11,6)=clhs175*clhs237 + clhs229;
            lhs(11,7)=clhs238;
            lhs(11,8)=clhs176*clhs248;
            lhs(11,9)=clhs176*clhs258;
            lhs(11,10)=clhs176*clhs265;
            lhs(11,11)=clhs174*(clhs244 + clhs255 + clhs264);
            lhs(11,12)=clhs175*clhs254 + clhs272;
            lhs(11,13)=clhs175*clhs263 + clhs273;
            lhs(11,14)=clhs175*clhs271 + clhs274;
            lhs(11,15)=clhs275;
            lhs(12,0)=DN(3,0)*clhs2 + DN(3,1)*clhs4 + DN(3,2)*clhs6 + clhs78;
            lhs(12,1)=DN(3,0)*clhs11 + DN(3,1)*clhs13 + DN(3,2)*clhs16 + clhs133;
            lhs(12,2)=DN(3,0)*clhs19 + DN(3,1)*clhs21 + DN(3,2)*clhs23 + clhs167;
            lhs(12,3)=-clhs185;
            lhs(12,4)=DN(3,0)*clhs26 + DN(3,1)*clhs28 + DN(3,2)*clhs30 + clhs204;
            lhs(12,5)=DN(3,0)*clhs35 + DN(3,1)*clhs37 + DN(3,2)*clhs40 + clhs217;
            lhs(12,6)=DN(3,0)*clhs42 + DN(3,1)*clhs44 + DN(3,2)*clhs46 + clhs230;
            lhs(12,7)=-clhs239;
            lhs(12,8)=DN(3,0)*clhs49 + DN(3,1)*clhs51 + DN(3,2)*clhs53 + clhs251;
            lhs(12,9)=DN(3,0)*clhs57 + DN(3,1)*clhs59 + DN(3,2)*clhs62 + clhs259;
            lhs(12,10)=DN(3,0)*clhs64 + DN(3,1)*clhs66 + DN(3,2)*clhs68 + clhs267;
            lhs(12,11)=-clhs272;
            lhs(12,12)=DN(3,0)*clhs71 + DN(3,1)*clhs73 + DN(3,2)*clhs75 + clhs10*clhs277 + clhs276;
            lhs(12,13)=DN(3,0)*clhs79 + DN(3,1)*clhs81 + DN(3,2)*clhs84 + clhs279;
            lhs(12,14)=DN(3,0)*clhs86 + DN(3,1)*clhs88 + DN(3,2)*clhs90 + clhs280;
            lhs(12,15)=-clhs281;
            lhs(13,0)=DN(3,0)*clhs4 + DN(3,1)*clhs93 + DN(3,2)*clhs94 + clhs85;
            lhs(13,1)=DN(3,0)*clhs13 + DN(3,1)*clhs95 + DN(3,2)*clhs97 + clhs138;
            lhs(13,2)=DN(3,0)*clhs21 + DN(3,1)*clhs99 + DN(3,2)*clhs101 + clhs169;
            lhs(13,3)=-clhs186;
            lhs(13,4)=DN(3,0)*clhs28 + DN(3,1)*clhs105 + DN(3,2)*clhs106 + clhs205;
            lhs(13,5)=DN(3,0)*clhs37 + DN(3,1)*clhs108 + DN(3,2)*clhs110 + clhs219;
            lhs(13,6)=DN(3,0)*clhs44 + DN(3,1)*clhs113 + DN(3,2)*clhs115 + clhs231;
            lhs(13,7)=-clhs240;
            lhs(13,8)=DN(3,0)*clhs51 + DN(3,1)*clhs118 + DN(3,2)*clhs119 + clhs252;
            lhs(13,9)=DN(3,0)*clhs59 + DN(3,1)*clhs121 + DN(3,2)*clhs123 + clhs261;
            lhs(13,10)=DN(3,0)*clhs66 + DN(3,1)*clhs126 + DN(3,2)*clhs128 + clhs268;
            lhs(13,11)=-clhs273;
            lhs(13,12)=DN(3,0)*clhs73 + DN(3,1)*clhs131 + DN(3,2)*clhs132 + clhs279;
            lhs(13,13)=DN(3,0)*clhs81 + DN(3,1)*clhs134 + DN(3,2)*clhs136 + clhs10*clhs282 + clhs276;
            lhs(13,14)=DN(3,0)*clhs88 + DN(3,1)*clhs139 + DN(3,2)*clhs141 + clhs283;
            lhs(13,15)=-clhs284;
            lhs(14,0)=DN(3,0)*clhs6 + DN(3,1)*clhs94 + DN(3,2)*clhs144 + clhs91;
            lhs(14,1)=DN(3,0)*clhs16 + DN(3,1)*clhs97 + DN(3,2)*clhs145 + clhs142;
            lhs(14,2)=DN(3,0)*clhs23 + DN(3,1)*clhs101 + DN(3,2)*clhs146 + clhs172;
            lhs(14,3)=-clhs187;
            lhs(14,4)=DN(3,0)*clhs30 + DN(3,1)*clhs106 + DN(3,2)*clhs149 + clhs206;
            lhs(14,5)=DN(3,0)*clhs40 + DN(3,1)*clhs110 + DN(3,2)*clhs152 + clhs220;
            lhs(14,6)=DN(3,0)*clhs46 + DN(3,1)*clhs115 + DN(3,2)*clhs154 + clhs233;
            lhs(14,7)=-clhs241;
            lhs(14,8)=DN(3,0)*clhs53 + DN(3,1)*clhs119 + DN(3,2)*clhs158 + clhs253;
            lhs(14,9)=DN(3,0)*clhs62 + DN(3,1)*clhs123 + DN(3,2)*clhs160 + clhs262;
            lhs(14,10)=DN(3,0)*clhs68 + DN(3,1)*clhs128 + DN(3,2)*clhs162 + clhs270;
            lhs(14,11)=-clhs274;
            lhs(14,12)=DN(3,0)*clhs75 + DN(3,1)*clhs132 + DN(3,2)*clhs166 + clhs280;
            lhs(14,13)=DN(3,0)*clhs84 + DN(3,1)*clhs136 + DN(3,2)*clhs168 + clhs283;
            lhs(14,14)=DN(3,0)*clhs90 + DN(3,1)*clhs141 + DN(3,2)*clhs170 + clhs10*clhs285 + clhs276;
            lhs(14,15)=-clhs286;
            lhs(15,0)=clhs175*clhs185 + clhs92;
            lhs(15,1)=clhs143 + clhs175*clhs186;
            lhs(15,2)=clhs173 + clhs175*clhs187;
            lhs(15,3)=clhs188;
            lhs(15,4)=clhs175*clhs239 + clhs207;
            lhs(15,5)=clhs175*clhs240 + clhs221;
            lhs(15,6)=clhs175*clhs241 + clhs234;
            lhs(15,7)=clhs242;
            lhs(15,8)=clhs175*clhs272 + clhs254;
            lhs(15,9)=clhs175*clhs273 + clhs263;
            lhs(15,10)=clhs175*clhs274 + clhs271;
            lhs(15,11)=clhs275;
            lhs(15,12)=clhs176*clhs281;
            lhs(15,13)=clhs176*clhs284;
            lhs(15,14)=clhs176*clhs286;
            lhs(15,15)=clhs174*(clhs277 + clhs282 + clhs285);


    // Add intermediate results to local system
    noalias(rLHS) += lhs * rData.Weight;
}

template <>
void SymbolicStokes<SymbolicStokesData<3,6>>::ComputeGaussPointLHSContribution(
    SymbolicStokesData<3,6>& rData,
    MatrixType& rLHS)
{
    const double rho = rData.Density;
    const double mu = rData.EffectiveViscosity;

    const double h = rData.ElementSize;
    const double dt = rData.DeltaTime;
    const double bdf0 = rData.bdf0;
    const double dyn_tau = rData.DynamicTau;

    // Get constitutive matrix
    const Matrix& C = rData.C;

    // Get shape function values
    const auto& N = rData.N;
    const auto& DN = rData.DN_DX;

    // Stabilization parameters
    constexpr double stab_c1 = 4.0;

    auto& lhs = rData.lhs;

    const double clhs0 =             bdf0*rho;
const double clhs1 =             pow(N[0], 2)*clhs0;
const double clhs2 =             C(0,0)*DN(0,0) + C(0,3)*DN(0,1) + C(0,5)*DN(0,2);
const double clhs3 =             C(0,3)*DN(0,0);
const double clhs4 =             C(3,3)*DN(0,1) + C(3,5)*DN(0,2) + clhs3;
const double clhs5 =             C(0,5)*DN(0,0);
const double clhs6 =             C(3,5)*DN(0,1) + C(5,5)*DN(0,2) + clhs5;
const double clhs7 =             pow(DN(0,0), 2);
const double clhs8 =             pow(h, 2);
const double clhs9 =             dyn_tau*rho/dt + mu*stab_c1/clhs8;
const double clhs10 =             1.0*clhs8*clhs9/stab_c1;
const double clhs11 =             C(0,1)*DN(0,1) + C(0,4)*DN(0,2) + clhs3;
const double clhs12 =             C(1,3)*DN(0,1);
const double clhs13 =             C(3,3)*DN(0,0) + C(3,4)*DN(0,2) + clhs12;
const double clhs14 =             C(3,5)*DN(0,0);
const double clhs15 =             C(4,5)*DN(0,2);
const double clhs16 =             C(1,5)*DN(0,1) + clhs14 + clhs15;
const double clhs17 =             DN(0,0)*clhs10;
const double clhs18 =             DN(0,1)*clhs17;
const double clhs19 =             C(0,2)*DN(0,2) + C(0,4)*DN(0,1) + clhs5;
const double clhs20 =             C(3,4)*DN(0,1);
const double clhs21 =             C(2,3)*DN(0,2) + clhs14 + clhs20;
const double clhs22 =             C(2,5)*DN(0,2);
const double clhs23 =             C(4,5)*DN(0,1) + C(5,5)*DN(0,0) + clhs22;
const double clhs24 =             DN(0,2)*clhs17;
const double clhs25 =             DN(0,0)*N[0];
const double clhs26 =             C(0,0)*DN(1,0) + C(0,3)*DN(1,1) + C(0,5)*DN(1,2);
const double clhs27 =             C(0,3)*DN(1,0);
const double clhs28 =             C(3,3)*DN(1,1) + C(3,5)*DN(1,2) + clhs27;
const double clhs29 =             C(0,5)*DN(1,0);
const double clhs30 =             C(3,5)*DN(1,1) + C(5,5)*DN(1,2) + clhs29;
const double clhs31 =             N[0]*clhs0;
const double clhs32 =             N[1]*clhs31;
const double clhs33 =             DN(0,0)*DN(1,0);
const double clhs34 =             clhs10*clhs33 + clhs32;
const double clhs35 =             C(0,1)*DN(1,1) + C(0,4)*DN(1,2) + clhs27;
const double clhs36 =             C(1,3)*DN(1,1);
const double clhs37 =             C(3,3)*DN(1,0) + C(3,4)*DN(1,2) + clhs36;
const double clhs38 =             C(3,5)*DN(1,0);
const double clhs39 =             C(4,5)*DN(1,2);
const double clhs40 =             C(1,5)*DN(1,1) + clhs38 + clhs39;
const double clhs41 =             DN(1,1)*clhs17;
const double clhs42 =             C(0,2)*DN(1,2) + C(0,4)*DN(1,1) + clhs29;
const double clhs43 =             C(3,4)*DN(1,1);
const double clhs44 =             C(2,3)*DN(1,2) + clhs38 + clhs43;
const double clhs45 =             C(2,5)*DN(1,2);
const double clhs46 =             C(4,5)*DN(1,1) + C(5,5)*DN(1,0) + clhs45;
const double clhs47 =             DN(1,2)*clhs17;
const double clhs48 =             DN(0,0)*N[1];
const double clhs49 =             C(0,0)*DN(2,0) + C(0,3)*DN(2,1) + C(0,5)*DN(2,2);
const double clhs50 =             C(0,3)*DN(2,0);
const double clhs51 =             C(3,3)*DN(2,1) + C(3,5)*DN(2,2) + clhs50;
const double clhs52 =             C(0,5)*DN(2,0);
const double clhs53 =             C(3,5)*DN(2,1) + C(5,5)*DN(2,2) + clhs52;
const double clhs54 =             N[2]*clhs31;
const double clhs55 =             DN(0,0)*DN(2,0);
const double clhs56 =             clhs10*clhs55 + clhs54;
const double clhs57 =             C(0,1)*DN(2,1) + C(0,4)*DN(2,2) + clhs50;
const double clhs58 =             C(1,3)*DN(2,1);
const double clhs59 =             C(3,3)*DN(2,0) + C(3,4)*DN(2,2) + clhs58;
const double clhs60 =             C(3,5)*DN(2,0);
const double clhs61 =             C(4,5)*DN(2,2);
const double clhs62 =             C(1,5)*DN(2,1) + clhs60 + clhs61;
const double clhs63 =             DN(2,1)*clhs17;
const double clhs64 =             C(0,2)*DN(2,2) + C(0,4)*DN(2,1) + clhs52;
const double clhs65 =             C(3,4)*DN(2,1);
const double clhs66 =             C(2,3)*DN(2,2) + clhs60 + clhs65;
const double clhs67 =             C(2,5)*DN(2,2);
const double clhs68 =             C(4,5)*DN(2,1) + C(5,5)*DN(2,0) + clhs67;
const double clhs69 =             DN(2,2)*clhs17;
const double clhs70 =             DN(0,0)*N[2];
const double clhs71 =             C(0,0)*DN(3,0) + C(0,3)*DN(3,1) + C(0,5)*DN(3,2);
const double clhs72 =             C(0,3)*DN(3,0);
const double clhs73 =             C(3,3)*DN(3,1) + C(3,5)*DN(3,2) + clhs72;
const double clhs74 =             C(0,5)*DN(3,0);
const double clhs75 =             C(3,5)*DN(3,1) + C(5,5)*DN(3,2) + clhs74;
const double clhs76 =             N[3]*clhs31;
const double clhs77 =             DN(0,0)*DN(3,0);
const double clhs78 =             clhs10*clhs77 + clhs76;
const double clhs79 =             C(0,1)*DN(3,1) + C(0,4)*DN(3,2) + clhs72;
const double clhs80 =             C(1,3)*DN(3,1);
const double clhs81 =             C(3,3)*DN(3,0) + C(3,4)*DN(3,2) + clhs80;
const double clhs82 =             C(3,5)*DN(3,0);
const double clhs83 =             C(4,5)*DN(3,2);
const double clhs84 =             C(1,5)*DN(3,1) + clhs82 + clhs83;
const double clhs85 =             DN(3,1)*clhs17;
const double clhs86 =             C(0,2)*DN(3,2) + C(0,4)*DN(3,1) + clhs74;
const double clhs87 =             C(3,4)*DN(3,1);
const double clhs88 =             C(2,3)*DN(3,2) + clhs82 + clhs87;
const double clhs89 =             C(2,5)*DN(3,2);
const double clhs90 =             C(4,5)*DN(3,1) + C(5,5)*DN(3,0) + clhs89;
const double clhs91 =             DN(3,2)*clhs17;
const double clhs92 =             DN(0,0)*N[3];
const double clhs93 =             C(0,0)*DN(4,0) + C(0,3)*DN(4,1) + C(0,5)*DN(4,2);
const double clhs94 =             C(0,3)*DN(4,0);
const double clhs95 =             C(3,3)*DN(4,1) + C(3,5)*DN(4,2) + clhs94;
const double clhs96 =             C(0,5)*DN(4,0);
const double clhs97 =             C(3,5)*DN(4,1) + C(5,5)*DN(4,2) + clhs96;
const double clhs98 =             N[4]*clhs31;
const double clhs99 =             DN(0,0)*DN(4,0);
const double clhs100 =             clhs10*clhs99 + clhs98;
const double clhs101 =             C(0,1)*DN(4,1) + C(0,4)*DN(4,2) + clhs94;
const double clhs102 =             C(1,3)*DN(4,1);
const double clhs103 =             C(3,3)*DN(4,0) + C(3,4)*DN(4,2) + clhs102;
const double clhs104 =             C(3,5)*DN(4,0);
const double clhs105 =             C(4,5)*DN(4,2);
const double clhs106 =             C(1,5)*DN(4,1) + clhs104 + clhs105;
const double clhs107 =             DN(4,1)*clhs17;
const double clhs108 =             C(0,2)*DN(4,2) + C(0,4)*DN(4,1) + clhs96;
const double clhs109 =             C(3,4)*DN(4,1);
const double clhs110 =             C(2,3)*DN(4,2) + clhs104 + clhs109;
const double clhs111 =             C(2,5)*DN(4,2);
const double clhs112 =             C(4,5)*DN(4,1) + C(5,5)*DN(4,0) + clhs111;
const double clhs113 =             DN(4,2)*clhs17;
const double clhs114 =             DN(0,0)*N[4];
const double clhs115 =             C(0,0)*DN(5,0) + C(0,3)*DN(5,1) + C(0,5)*DN(5,2);
const double clhs116 =             C(0,3)*DN(5,0);
const double clhs117 =             C(3,3)*DN(5,1) + C(3,5)*DN(5,2) + clhs116;
const double clhs118 =             C(0,5)*DN(5,0);
const double clhs119 =             C(3,5)*DN(5,1) + C(5,5)*DN(5,2) + clhs118;
const double clhs120 =             N[5]*clhs31;
const double clhs121 =             DN(0,0)*DN(5,0);
const double clhs122 =             clhs10*clhs121 + clhs120;
const double clhs123 =             C(0,1)*DN(5,1) + C(0,4)*DN(5,2) + clhs116;
const double clhs124 =             C(1,3)*DN(5,1);
const double clhs125 =             C(3,3)*DN(5,0) + C(3,4)*DN(5,2) + clhs124;
const double clhs126 =             C(3,5)*DN(5,0);
const double clhs127 =             C(4,5)*DN(5,2);
const double clhs128 =             C(1,5)*DN(5,1) + clhs126 + clhs127;
const double clhs129 =             DN(5,1)*clhs17;
const double clhs130 =             C(0,2)*DN(5,2) + C(0,4)*DN(5,1) + clhs118;
const double clhs131 =             C(3,4)*DN(5,1);
const double clhs132 =             C(2,3)*DN(5,2) + clhs126 + clhs131;
const double clhs133 =             C(2,5)*DN(5,2);
const double clhs134 =             C(4,5)*DN(5,1) + C(5,5)*DN(5,0) + clhs133;
const double clhs135 =             DN(5,2)*clhs17;
const double clhs136 =             DN(0,0)*N[5];
const double clhs137 =             C(0,1)*DN(0,0) + C(1,5)*DN(0,2) + clhs12;
const double clhs138 =             C(0,4)*DN(0,0) + clhs15 + clhs20;
const double clhs139 =             C(1,1)*DN(0,1) + C(1,3)*DN(0,0) + C(1,4)*DN(0,2);
const double clhs140 =             C(1,4)*DN(0,1);
const double clhs141 =             C(3,4)*DN(0,0) + C(4,4)*DN(0,2) + clhs140;
const double clhs142 =             pow(DN(0,1), 2);
const double clhs143 =             C(1,2)*DN(0,2) + C(1,5)*DN(0,0) + clhs140;
const double clhs144 =             C(2,4)*DN(0,2);
const double clhs145 =             C(4,4)*DN(0,1) + C(4,5)*DN(0,0) + clhs144;
const double clhs146 =             DN(0,1)*clhs10;
const double clhs147 =             DN(0,2)*clhs146;
const double clhs148 =             DN(0,1)*N[0];
const double clhs149 =             C(0,1)*DN(1,0) + C(1,5)*DN(1,2) + clhs36;
const double clhs150 =             C(0,4)*DN(1,0) + clhs39 + clhs43;
const double clhs151 =             DN(1,0)*clhs146;
const double clhs152 =             C(1,1)*DN(1,1) + C(1,3)*DN(1,0) + C(1,4)*DN(1,2);
const double clhs153 =             C(1,4)*DN(1,1);
const double clhs154 =             C(3,4)*DN(1,0) + C(4,4)*DN(1,2) + clhs153;
const double clhs155 =             DN(0,1)*DN(1,1);
const double clhs156 =             clhs10*clhs155 + clhs32;
const double clhs157 =             C(1,2)*DN(1,2) + C(1,5)*DN(1,0) + clhs153;
const double clhs158 =             C(2,4)*DN(1,2);
const double clhs159 =             C(4,4)*DN(1,1) + C(4,5)*DN(1,0) + clhs158;
const double clhs160 =             DN(1,2)*clhs146;
const double clhs161 =             DN(0,1)*N[1];
const double clhs162 =             C(0,1)*DN(2,0) + C(1,5)*DN(2,2) + clhs58;
const double clhs163 =             C(0,4)*DN(2,0) + clhs61 + clhs65;
const double clhs164 =             DN(2,0)*clhs146;
const double clhs165 =             C(1,1)*DN(2,1) + C(1,3)*DN(2,0) + C(1,4)*DN(2,2);
const double clhs166 =             C(1,4)*DN(2,1);
const double clhs167 =             C(3,4)*DN(2,0) + C(4,4)*DN(2,2) + clhs166;
const double clhs168 =             DN(0,1)*DN(2,1);
const double clhs169 =             clhs10*clhs168 + clhs54;
const double clhs170 =             C(1,2)*DN(2,2) + C(1,5)*DN(2,0) + clhs166;
const double clhs171 =             C(2,4)*DN(2,2);
const double clhs172 =             C(4,4)*DN(2,1) + C(4,5)*DN(2,0) + clhs171;
const double clhs173 =             DN(2,2)*clhs146;
const double clhs174 =             DN(0,1)*N[2];
const double clhs175 =             C(0,1)*DN(3,0) + C(1,5)*DN(3,2) + clhs80;
const double clhs176 =             C(0,4)*DN(3,0) + clhs83 + clhs87;
const double clhs177 =             DN(3,0)*clhs146;
const double clhs178 =             C(1,1)*DN(3,1) + C(1,3)*DN(3,0) + C(1,4)*DN(3,2);
const double clhs179 =             C(1,4)*DN(3,1);
const double clhs180 =             C(3,4)*DN(3,0) + C(4,4)*DN(3,2) + clhs179;
const double clhs181 =             DN(0,1)*DN(3,1);
const double clhs182 =             clhs10*clhs181 + clhs76;
const double clhs183 =             C(1,2)*DN(3,2) + C(1,5)*DN(3,0) + clhs179;
const double clhs184 =             C(2,4)*DN(3,2);
const double clhs185 =             C(4,4)*DN(3,1) + C(4,5)*DN(3,0) + clhs184;
const double clhs186 =             DN(3,2)*clhs146;
const double clhs187 =             DN(0,1)*N[3];
const double clhs188 =             C(0,1)*DN(4,0) + C(1,5)*DN(4,2) + clhs102;
const double clhs189 =             C(0,4)*DN(4,0) + clhs105 + clhs109;
const double clhs190 =             DN(4,0)*clhs146;
const double clhs191 =             C(1,1)*DN(4,1) + C(1,3)*DN(4,0) + C(1,4)*DN(4,2);
const double clhs192 =             C(1,4)*DN(4,1);
const double clhs193 =             C(3,4)*DN(4,0) + C(4,4)*DN(4,2) + clhs192;
const double clhs194 =             DN(0,1)*DN(4,1);
const double clhs195 =             clhs10*clhs194 + clhs98;
const double clhs196 =             C(1,2)*DN(4,2) + C(1,5)*DN(4,0) + clhs192;
const double clhs197 =             C(2,4)*DN(4,2);
const double clhs198 =             C(4,4)*DN(4,1) + C(4,5)*DN(4,0) + clhs197;
const double clhs199 =             DN(4,2)*clhs146;
const double clhs200 =             DN(0,1)*N[4];
const double clhs201 =             C(0,1)*DN(5,0) + C(1,5)*DN(5,2) + clhs124;
const double clhs202 =             C(0,4)*DN(5,0) + clhs127 + clhs131;
const double clhs203 =             DN(5,0)*clhs146;
const double clhs204 =             C(1,1)*DN(5,1) + C(1,3)*DN(5,0) + C(1,4)*DN(5,2);
const double clhs205 =             C(1,4)*DN(5,1);
const double clhs206 =             C(3,4)*DN(5,0) + C(4,4)*DN(5,2) + clhs205;
const double clhs207 =             DN(0,1)*DN(5,1);
const double clhs208 =             clhs10*clhs207 + clhs120;
const double clhs209 =             C(1,2)*DN(5,2) + C(1,5)*DN(5,0) + clhs205;
const double clhs210 =             C(2,4)*DN(5,2);
const double clhs211 =             C(4,4)*DN(5,1) + C(4,5)*DN(5,0) + clhs210;
const double clhs212 =             DN(5,2)*clhs146;
const double clhs213 =             DN(0,1)*N[5];
const double clhs214 =             C(0,2)*DN(0,0) + C(2,3)*DN(0,1) + clhs22;
const double clhs215 =             C(1,2)*DN(0,1) + C(2,3)*DN(0,0) + clhs144;
const double clhs216 =             C(2,2)*DN(0,2) + C(2,4)*DN(0,1) + C(2,5)*DN(0,0);
const double clhs217 =             pow(DN(0,2), 2);
const double clhs218 =             DN(0,2)*N[0];
const double clhs219 =             C(0,2)*DN(1,0) + C(2,3)*DN(1,1) + clhs45;
const double clhs220 =             DN(0,2)*clhs10;
const double clhs221 =             DN(1,0)*clhs220;
const double clhs222 =             C(1,2)*DN(1,1) + C(2,3)*DN(1,0) + clhs158;
const double clhs223 =             DN(1,1)*clhs220;
const double clhs224 =             C(2,2)*DN(1,2) + C(2,4)*DN(1,1) + C(2,5)*DN(1,0);
const double clhs225 =             DN(0,2)*DN(1,2);
const double clhs226 =             clhs10*clhs225 + clhs32;
const double clhs227 =             DN(0,2)*N[1];
const double clhs228 =             C(0,2)*DN(2,0) + C(2,3)*DN(2,1) + clhs67;
const double clhs229 =             DN(2,0)*clhs220;
const double clhs230 =             C(1,2)*DN(2,1) + C(2,3)*DN(2,0) + clhs171;
const double clhs231 =             DN(2,1)*clhs220;
const double clhs232 =             C(2,2)*DN(2,2) + C(2,4)*DN(2,1) + C(2,5)*DN(2,0);
const double clhs233 =             DN(0,2)*DN(2,2);
const double clhs234 =             clhs10*clhs233 + clhs54;
const double clhs235 =             DN(0,2)*N[2];
const double clhs236 =             C(0,2)*DN(3,0) + C(2,3)*DN(3,1) + clhs89;
const double clhs237 =             DN(3,0)*clhs220;
const double clhs238 =             C(1,2)*DN(3,1) + C(2,3)*DN(3,0) + clhs184;
const double clhs239 =             DN(3,1)*clhs220;
const double clhs240 =             C(2,2)*DN(3,2) + C(2,4)*DN(3,1) + C(2,5)*DN(3,0);
const double clhs241 =             DN(0,2)*DN(3,2);
const double clhs242 =             clhs10*clhs241 + clhs76;
const double clhs243 =             DN(0,2)*N[3];
const double clhs244 =             C(0,2)*DN(4,0) + C(2,3)*DN(4,1) + clhs111;
const double clhs245 =             DN(4,0)*clhs220;
const double clhs246 =             C(1,2)*DN(4,1) + C(2,3)*DN(4,0) + clhs197;
const double clhs247 =             DN(4,1)*clhs220;
const double clhs248 =             C(2,2)*DN(4,2) + C(2,4)*DN(4,1) + C(2,5)*DN(4,0);
const double clhs249 =             DN(0,2)*DN(4,2);
const double clhs250 =             clhs10*clhs249 + clhs98;
const double clhs251 =             DN(0,2)*N[4];
const double clhs252 =             C(0,2)*DN(5,0) + C(2,3)*DN(5,1) + clhs133;
const double clhs253 =             DN(5,0)*clhs220;
const double clhs254 =             C(1,2)*DN(5,1) + C(2,3)*DN(5,0) + clhs210;
const double clhs255 =             DN(5,1)*clhs220;
const double clhs256 =             C(2,2)*DN(5,2) + C(2,4)*DN(5,1) + C(2,5)*DN(5,0);
const double clhs257 =             DN(0,2)*DN(5,2);
const double clhs258 =             clhs10*clhs257 + clhs120;
const double clhs259 =             DN(0,2)*N[5];
const double clhs260 =             1.0/clhs9;
const double clhs261 =             clhs0*clhs260;
const double clhs262 =             clhs261 + 1;
const double clhs263 =             DN(1,0)*N[0];
const double clhs264 =             DN(1,1)*N[0];
const double clhs265 =             DN(1,2)*N[0];
const double clhs266 =             clhs260*(clhs155 + clhs225 + clhs33);
const double clhs267 =             DN(2,0)*N[0];
const double clhs268 =             DN(2,1)*N[0];
const double clhs269 =             DN(2,2)*N[0];
const double clhs270 =             clhs260*(clhs168 + clhs233 + clhs55);
const double clhs271 =             DN(3,0)*N[0];
const double clhs272 =             DN(3,1)*N[0];
const double clhs273 =             DN(3,2)*N[0];
const double clhs274 =             clhs260*(clhs181 + clhs241 + clhs77);
const double clhs275 =             DN(4,0)*N[0];
const double clhs276 =             DN(4,1)*N[0];
const double clhs277 =             DN(4,2)*N[0];
const double clhs278 =             clhs260*(clhs194 + clhs249 + clhs99);
const double clhs279 =             DN(5,0)*N[0];
const double clhs280 =             DN(5,1)*N[0];
const double clhs281 =             DN(5,2)*N[0];
const double clhs282 =             clhs260*(clhs121 + clhs207 + clhs257);
const double clhs283 =             pow(N[1], 2)*clhs0;
const double clhs284 =             pow(DN(1,0), 2);
const double clhs285 =             DN(1,0)*clhs10;
const double clhs286 =             DN(1,1)*clhs285;
const double clhs287 =             DN(1,2)*clhs285;
const double clhs288 =             DN(1,0)*N[1];
const double clhs289 =             N[1]*clhs0;
const double clhs290 =             N[2]*clhs289;
const double clhs291 =             DN(1,0)*DN(2,0);
const double clhs292 =             clhs10*clhs291 + clhs290;
const double clhs293 =             DN(2,1)*clhs285;
const double clhs294 =             DN(2,2)*clhs285;
const double clhs295 =             DN(1,0)*N[2];
const double clhs296 =             N[3]*clhs289;
const double clhs297 =             DN(1,0)*DN(3,0);
const double clhs298 =             clhs10*clhs297 + clhs296;
const double clhs299 =             DN(3,1)*clhs285;
const double clhs300 =             DN(3,2)*clhs285;
const double clhs301 =             DN(1,0)*N[3];
const double clhs302 =             N[4]*clhs289;
const double clhs303 =             DN(1,0)*DN(4,0);
const double clhs304 =             clhs10*clhs303 + clhs302;
const double clhs305 =             DN(4,1)*clhs285;
const double clhs306 =             DN(4,2)*clhs285;
const double clhs307 =             DN(1,0)*N[4];
const double clhs308 =             N[5]*clhs289;
const double clhs309 =             DN(1,0)*DN(5,0);
const double clhs310 =             clhs10*clhs309 + clhs308;
const double clhs311 =             DN(5,1)*clhs285;
const double clhs312 =             DN(5,2)*clhs285;
const double clhs313 =             DN(1,0)*N[5];
const double clhs314 =             pow(DN(1,1), 2);
const double clhs315 =             DN(1,1)*clhs10;
const double clhs316 =             DN(1,2)*clhs315;
const double clhs317 =             DN(1,1)*N[1];
const double clhs318 =             DN(2,0)*clhs315;
const double clhs319 =             DN(1,1)*DN(2,1);
const double clhs320 =             clhs10*clhs319 + clhs290;
const double clhs321 =             DN(2,2)*clhs315;
const double clhs322 =             DN(1,1)*N[2];
const double clhs323 =             DN(3,0)*clhs315;
const double clhs324 =             DN(1,1)*DN(3,1);
const double clhs325 =             clhs10*clhs324 + clhs296;
const double clhs326 =             DN(3,2)*clhs315;
const double clhs327 =             DN(1,1)*N[3];
const double clhs328 =             DN(4,0)*clhs315;
const double clhs329 =             DN(1,1)*DN(4,1);
const double clhs330 =             clhs10*clhs329 + clhs302;
const double clhs331 =             DN(4,2)*clhs315;
const double clhs332 =             DN(1,1)*N[4];
const double clhs333 =             DN(5,0)*clhs315;
const double clhs334 =             DN(1,1)*DN(5,1);
const double clhs335 =             clhs10*clhs334 + clhs308;
const double clhs336 =             DN(5,2)*clhs315;
const double clhs337 =             DN(1,1)*N[5];
const double clhs338 =             pow(DN(1,2), 2);
const double clhs339 =             DN(1,2)*N[1];
const double clhs340 =             DN(1,2)*clhs10;
const double clhs341 =             DN(2,0)*clhs340;
const double clhs342 =             DN(2,1)*clhs340;
const double clhs343 =             DN(1,2)*DN(2,2);
const double clhs344 =             clhs10*clhs343 + clhs290;
const double clhs345 =             DN(1,2)*N[2];
const double clhs346 =             DN(3,0)*clhs340;
const double clhs347 =             DN(3,1)*clhs340;
const double clhs348 =             DN(1,2)*DN(3,2);
const double clhs349 =             clhs10*clhs348 + clhs296;
const double clhs350 =             DN(1,2)*N[3];
const double clhs351 =             DN(4,0)*clhs340;
const double clhs352 =             DN(4,1)*clhs340;
const double clhs353 =             DN(1,2)*DN(4,2);
const double clhs354 =             clhs10*clhs353 + clhs302;
const double clhs355 =             DN(1,2)*N[4];
const double clhs356 =             DN(5,0)*clhs340;
const double clhs357 =             DN(5,1)*clhs340;
const double clhs358 =             DN(1,2)*DN(5,2);
const double clhs359 =             clhs10*clhs358 + clhs308;
const double clhs360 =             DN(1,2)*N[5];
const double clhs361 =             DN(2,0)*N[1];
const double clhs362 =             DN(2,1)*N[1];
const double clhs363 =             DN(2,2)*N[1];
const double clhs364 =             clhs260*(clhs291 + clhs319 + clhs343);
const double clhs365 =             DN(3,0)*N[1];
const double clhs366 =             DN(3,1)*N[1];
const double clhs367 =             DN(3,2)*N[1];
const double clhs368 =             clhs260*(clhs297 + clhs324 + clhs348);
const double clhs369 =             DN(4,0)*N[1];
const double clhs370 =             DN(4,1)*N[1];
const double clhs371 =             DN(4,2)*N[1];
const double clhs372 =             clhs260*(clhs303 + clhs329 + clhs353);
const double clhs373 =             DN(5,0)*N[1];
const double clhs374 =             DN(5,1)*N[1];
const double clhs375 =             DN(5,2)*N[1];
const double clhs376 =             clhs260*(clhs309 + clhs334 + clhs358);
const double clhs377 =             pow(N[2], 2)*clhs0;
const double clhs378 =             pow(DN(2,0), 2);
const double clhs379 =             DN(2,0)*clhs10;
const double clhs380 =             DN(2,1)*clhs379;
const double clhs381 =             DN(2,2)*clhs379;
const double clhs382 =             DN(2,0)*N[2];
const double clhs383 =             N[2]*clhs0;
const double clhs384 =             N[3]*clhs383;
const double clhs385 =             DN(2,0)*DN(3,0);
const double clhs386 =             clhs10*clhs385 + clhs384;
const double clhs387 =             DN(3,1)*clhs379;
const double clhs388 =             DN(3,2)*clhs379;
const double clhs389 =             DN(2,0)*N[3];
const double clhs390 =             N[4]*clhs383;
const double clhs391 =             DN(2,0)*DN(4,0);
const double clhs392 =             clhs10*clhs391 + clhs390;
const double clhs393 =             DN(4,1)*clhs379;
const double clhs394 =             DN(4,2)*clhs379;
const double clhs395 =             DN(2,0)*N[4];
const double clhs396 =             N[5]*clhs383;
const double clhs397 =             DN(2,0)*DN(5,0);
const double clhs398 =             clhs10*clhs397 + clhs396;
const double clhs399 =             DN(5,1)*clhs379;
const double clhs400 =             DN(5,2)*clhs379;
const double clhs401 =             DN(2,0)*N[5];
const double clhs402 =             pow(DN(2,1), 2);
const double clhs403 =             DN(2,1)*clhs10;
const double clhs404 =             DN(2,2)*clhs403;
const double clhs405 =             DN(2,1)*N[2];
const double clhs406 =             DN(3,0)*clhs403;
const double clhs407 =             DN(2,1)*DN(3,1);
const double clhs408 =             clhs10*clhs407 + clhs384;
const double clhs409 =             DN(3,2)*clhs403;
const double clhs410 =             DN(2,1)*N[3];
const double clhs411 =             DN(4,0)*clhs403;
const double clhs412 =             DN(2,1)*DN(4,1);
const double clhs413 =             clhs10*clhs412 + clhs390;
const double clhs414 =             DN(4,2)*clhs403;
const double clhs415 =             DN(2,1)*N[4];
const double clhs416 =             DN(5,0)*clhs403;
const double clhs417 =             DN(2,1)*DN(5,1);
const double clhs418 =             clhs10*clhs417 + clhs396;
const double clhs419 =             DN(5,2)*clhs403;
const double clhs420 =             DN(2,1)*N[5];
const double clhs421 =             pow(DN(2,2), 2);
const double clhs422 =             DN(2,2)*N[2];
const double clhs423 =             DN(2,2)*clhs10;
const double clhs424 =             DN(3,0)*clhs423;
const double clhs425 =             DN(3,1)*clhs423;
const double clhs426 =             DN(2,2)*DN(3,2);
const double clhs427 =             clhs10*clhs426 + clhs384;
const double clhs428 =             DN(2,2)*N[3];
const double clhs429 =             DN(4,0)*clhs423;
const double clhs430 =             DN(4,1)*clhs423;
const double clhs431 =             DN(2,2)*DN(4,2);
const double clhs432 =             clhs10*clhs431 + clhs390;
const double clhs433 =             DN(2,2)*N[4];
const double clhs434 =             DN(5,0)*clhs423;
const double clhs435 =             DN(5,1)*clhs423;
const double clhs436 =             DN(2,2)*DN(5,2);
const double clhs437 =             clhs10*clhs436 + clhs396;
const double clhs438 =             DN(2,2)*N[5];
const double clhs439 =             DN(3,0)*N[2];
const double clhs440 =             DN(3,1)*N[2];
const double clhs441 =             DN(3,2)*N[2];
const double clhs442 =             clhs260*(clhs385 + clhs407 + clhs426);
const double clhs443 =             DN(4,0)*N[2];
const double clhs444 =             DN(4,1)*N[2];
const double clhs445 =             DN(4,2)*N[2];
const double clhs446 =             clhs260*(clhs391 + clhs412 + clhs431);
const double clhs447 =             DN(5,0)*N[2];
const double clhs448 =             DN(5,1)*N[2];
const double clhs449 =             DN(5,2)*N[2];
const double clhs450 =             clhs260*(clhs397 + clhs417 + clhs436);
const double clhs451 =             pow(N[3], 2)*clhs0;
const double clhs452 =             pow(DN(3,0), 2);
const double clhs453 =             DN(3,0)*clhs10;
const double clhs454 =             DN(3,1)*clhs453;
const double clhs455 =             DN(3,2)*clhs453;
const double clhs456 =             DN(3,0)*N[3];
const double clhs457 =             N[3]*clhs0;
const double clhs458 =             N[4]*clhs457;
const double clhs459 =             DN(3,0)*DN(4,0);
const double clhs460 =             clhs10*clhs459 + clhs458;
const double clhs461 =             DN(4,1)*clhs453;
const double clhs462 =             DN(4,2)*clhs453;
const double clhs463 =             DN(3,0)*N[4];
const double clhs464 =             N[5]*clhs457;
const double clhs465 =             DN(3,0)*DN(5,0);
const double clhs466 =             clhs10*clhs465 + clhs464;
const double clhs467 =             DN(5,1)*clhs453;
const double clhs468 =             DN(5,2)*clhs453;
const double clhs469 =             DN(3,0)*N[5];
const double clhs470 =             pow(DN(3,1), 2);
const double clhs471 =             DN(3,1)*clhs10;
const double clhs472 =             DN(3,2)*clhs471;
const double clhs473 =             DN(3,1)*N[3];
const double clhs474 =             DN(4,0)*clhs471;
const double clhs475 =             DN(3,1)*DN(4,1);
const double clhs476 =             clhs10*clhs475 + clhs458;
const double clhs477 =             DN(4,2)*clhs471;
const double clhs478 =             DN(3,1)*N[4];
const double clhs479 =             DN(5,0)*clhs471;
const double clhs480 =             DN(3,1)*DN(5,1);
const double clhs481 =             clhs10*clhs480 + clhs464;
const double clhs482 =             DN(5,2)*clhs471;
const double clhs483 =             DN(3,1)*N[5];
const double clhs484 =             pow(DN(3,2), 2);
const double clhs485 =             DN(3,2)*N[3];
const double clhs486 =             DN(3,2)*clhs10;
const double clhs487 =             DN(4,0)*clhs486;
const double clhs488 =             DN(4,1)*clhs486;
const double clhs489 =             DN(3,2)*DN(4,2);
const double clhs490 =             clhs10*clhs489 + clhs458;
const double clhs491 =             DN(3,2)*N[4];
const double clhs492 =             DN(5,0)*clhs486;
const double clhs493 =             DN(5,1)*clhs486;
const double clhs494 =             DN(3,2)*DN(5,2);
const double clhs495 =             clhs10*clhs494 + clhs464;
const double clhs496 =             DN(3,2)*N[5];
const double clhs497 =             DN(4,0)*N[3];
const double clhs498 =             DN(4,1)*N[3];
const double clhs499 =             DN(4,2)*N[3];
const double clhs500 =             clhs260*(clhs459 + clhs475 + clhs489);
const double clhs501 =             DN(5,0)*N[3];
const double clhs502 =             DN(5,1)*N[3];
const double clhs503 =             DN(5,2)*N[3];
const double clhs504 =             clhs260*(clhs465 + clhs480 + clhs494);
const double clhs505 =             pow(N[4], 2)*clhs0;
const double clhs506 =             pow(DN(4,0), 2);
const double clhs507 =             DN(4,0)*clhs10;
const double clhs508 =             DN(4,1)*clhs507;
const double clhs509 =             DN(4,2)*clhs507;
const double clhs510 =             DN(4,0)*N[4];
const double clhs511 =             N[4]*N[5]*clhs0;
const double clhs512 =             DN(4,0)*DN(5,0);
const double clhs513 =             clhs10*clhs512 + clhs511;
const double clhs514 =             DN(5,1)*clhs507;
const double clhs515 =             DN(5,2)*clhs507;
const double clhs516 =             DN(4,0)*N[5];
const double clhs517 =             pow(DN(4,1), 2);
const double clhs518 =             DN(4,1)*clhs10;
const double clhs519 =             DN(4,2)*clhs518;
const double clhs520 =             DN(4,1)*N[4];
const double clhs521 =             DN(5,0)*clhs518;
const double clhs522 =             DN(4,1)*DN(5,1);
const double clhs523 =             clhs10*clhs522 + clhs511;
const double clhs524 =             DN(5,2)*clhs518;
const double clhs525 =             DN(4,1)*N[5];
const double clhs526 =             pow(DN(4,2), 2);
const double clhs527 =             DN(4,2)*N[4];
const double clhs528 =             DN(4,2)*clhs10;
const double clhs529 =             DN(5,0)*clhs528;
const double clhs530 =             DN(5,1)*clhs528;
const double clhs531 =             DN(4,2)*DN(5,2);
const double clhs532 =             clhs10*clhs531 + clhs511;
const double clhs533 =             DN(4,2)*N[5];
const double clhs534 =             DN(5,0)*N[4];
const double clhs535 =             DN(5,1)*N[4];
const double clhs536 =             DN(5,2)*N[4];
const double clhs537 =             clhs260*(clhs512 + clhs522 + clhs531);
const double clhs538 =             pow(N[5], 2)*clhs0;
const double clhs539 =             pow(DN(5,0), 2);
const double clhs540 =             DN(5,0)*clhs10;
const double clhs541 =             DN(5,1)*clhs540;
const double clhs542 =             DN(5,2)*clhs540;
const double clhs543 =             DN(5,0)*N[5];
const double clhs544 =             pow(DN(5,1), 2);
const double clhs545 =             DN(5,1)*DN(5,2)*clhs10;
const double clhs546 =             DN(5,1)*N[5];
const double clhs547 =             pow(DN(5,2), 2);
const double clhs548 =             DN(5,2)*N[5];
            lhs(0,0)=DN(0,0)*clhs2 + DN(0,1)*clhs4 + DN(0,2)*clhs6 + clhs1 + clhs10*clhs7;
            lhs(0,1)=DN(0,0)*clhs11 + DN(0,1)*clhs13 + DN(0,2)*clhs16 + clhs18;
            lhs(0,2)=DN(0,0)*clhs19 + DN(0,1)*clhs21 + DN(0,2)*clhs23 + clhs24;
            lhs(0,3)=-clhs25;
            lhs(0,4)=DN(0,0)*clhs26 + DN(0,1)*clhs28 + DN(0,2)*clhs30 + clhs34;
            lhs(0,5)=DN(0,0)*clhs35 + DN(0,1)*clhs37 + DN(0,2)*clhs40 + clhs41;
            lhs(0,6)=DN(0,0)*clhs42 + DN(0,1)*clhs44 + DN(0,2)*clhs46 + clhs47;
            lhs(0,7)=-clhs48;
            lhs(0,8)=DN(0,0)*clhs49 + DN(0,1)*clhs51 + DN(0,2)*clhs53 + clhs56;
            lhs(0,9)=DN(0,0)*clhs57 + DN(0,1)*clhs59 + DN(0,2)*clhs62 + clhs63;
            lhs(0,10)=DN(0,0)*clhs64 + DN(0,1)*clhs66 + DN(0,2)*clhs68 + clhs69;
            lhs(0,11)=-clhs70;
            lhs(0,12)=DN(0,0)*clhs71 + DN(0,1)*clhs73 + DN(0,2)*clhs75 + clhs78;
            lhs(0,13)=DN(0,0)*clhs79 + DN(0,1)*clhs81 + DN(0,2)*clhs84 + clhs85;
            lhs(0,14)=DN(0,0)*clhs86 + DN(0,1)*clhs88 + DN(0,2)*clhs90 + clhs91;
            lhs(0,15)=-clhs92;
            lhs(0,16)=DN(0,0)*clhs93 + DN(0,1)*clhs95 + DN(0,2)*clhs97 + clhs100;
            lhs(0,17)=DN(0,0)*clhs101 + DN(0,1)*clhs103 + DN(0,2)*clhs106 + clhs107;
            lhs(0,18)=DN(0,0)*clhs108 + DN(0,1)*clhs110 + DN(0,2)*clhs112 + clhs113;
            lhs(0,19)=-clhs114;
            lhs(0,20)=DN(0,0)*clhs115 + DN(0,1)*clhs117 + DN(0,2)*clhs119 + clhs122;
            lhs(0,21)=DN(0,0)*clhs123 + DN(0,1)*clhs125 + DN(0,2)*clhs128 + clhs129;
            lhs(0,22)=DN(0,0)*clhs130 + DN(0,1)*clhs132 + DN(0,2)*clhs134 + clhs135;
            lhs(0,23)=-clhs136;
            lhs(1,0)=DN(0,0)*clhs4 + DN(0,1)*clhs137 + DN(0,2)*clhs138 + clhs18;
            lhs(1,1)=DN(0,0)*clhs13 + DN(0,1)*clhs139 + DN(0,2)*clhs141 + clhs1 + clhs10*clhs142;
            lhs(1,2)=DN(0,0)*clhs21 + DN(0,1)*clhs143 + DN(0,2)*clhs145 + clhs147;
            lhs(1,3)=-clhs148;
            lhs(1,4)=DN(0,0)*clhs28 + DN(0,1)*clhs149 + DN(0,2)*clhs150 + clhs151;
            lhs(1,5)=DN(0,0)*clhs37 + DN(0,1)*clhs152 + DN(0,2)*clhs154 + clhs156;
            lhs(1,6)=DN(0,0)*clhs44 + DN(0,1)*clhs157 + DN(0,2)*clhs159 + clhs160;
            lhs(1,7)=-clhs161;
            lhs(1,8)=DN(0,0)*clhs51 + DN(0,1)*clhs162 + DN(0,2)*clhs163 + clhs164;
            lhs(1,9)=DN(0,0)*clhs59 + DN(0,1)*clhs165 + DN(0,2)*clhs167 + clhs169;
            lhs(1,10)=DN(0,0)*clhs66 + DN(0,1)*clhs170 + DN(0,2)*clhs172 + clhs173;
            lhs(1,11)=-clhs174;
            lhs(1,12)=DN(0,0)*clhs73 + DN(0,1)*clhs175 + DN(0,2)*clhs176 + clhs177;
            lhs(1,13)=DN(0,0)*clhs81 + DN(0,1)*clhs178 + DN(0,2)*clhs180 + clhs182;
            lhs(1,14)=DN(0,0)*clhs88 + DN(0,1)*clhs183 + DN(0,2)*clhs185 + clhs186;
            lhs(1,15)=-clhs187;
            lhs(1,16)=DN(0,0)*clhs95 + DN(0,1)*clhs188 + DN(0,2)*clhs189 + clhs190;
            lhs(1,17)=DN(0,0)*clhs103 + DN(0,1)*clhs191 + DN(0,2)*clhs193 + clhs195;
            lhs(1,18)=DN(0,0)*clhs110 + DN(0,1)*clhs196 + DN(0,2)*clhs198 + clhs199;
            lhs(1,19)=-clhs200;
            lhs(1,20)=DN(0,0)*clhs117 + DN(0,1)*clhs201 + DN(0,2)*clhs202 + clhs203;
            lhs(1,21)=DN(0,0)*clhs125 + DN(0,1)*clhs204 + DN(0,2)*clhs206 + clhs208;
            lhs(1,22)=DN(0,0)*clhs132 + DN(0,1)*clhs209 + DN(0,2)*clhs211 + clhs212;
            lhs(1,23)=-clhs213;
            lhs(2,0)=DN(0,0)*clhs6 + DN(0,1)*clhs138 + DN(0,2)*clhs214 + clhs24;
            lhs(2,1)=DN(0,0)*clhs16 + DN(0,1)*clhs141 + DN(0,2)*clhs215 + clhs147;
            lhs(2,2)=DN(0,0)*clhs23 + DN(0,1)*clhs145 + DN(0,2)*clhs216 + clhs1 + clhs10*clhs217;
            lhs(2,3)=-clhs218;
            lhs(2,4)=DN(0,0)*clhs30 + DN(0,1)*clhs150 + DN(0,2)*clhs219 + clhs221;
            lhs(2,5)=DN(0,0)*clhs40 + DN(0,1)*clhs154 + DN(0,2)*clhs222 + clhs223;
            lhs(2,6)=DN(0,0)*clhs46 + DN(0,1)*clhs159 + DN(0,2)*clhs224 + clhs226;
            lhs(2,7)=-clhs227;
            lhs(2,8)=DN(0,0)*clhs53 + DN(0,1)*clhs163 + DN(0,2)*clhs228 + clhs229;
            lhs(2,9)=DN(0,0)*clhs62 + DN(0,1)*clhs167 + DN(0,2)*clhs230 + clhs231;
            lhs(2,10)=DN(0,0)*clhs68 + DN(0,1)*clhs172 + DN(0,2)*clhs232 + clhs234;
            lhs(2,11)=-clhs235;
            lhs(2,12)=DN(0,0)*clhs75 + DN(0,1)*clhs176 + DN(0,2)*clhs236 + clhs237;
            lhs(2,13)=DN(0,0)*clhs84 + DN(0,1)*clhs180 + DN(0,2)*clhs238 + clhs239;
            lhs(2,14)=DN(0,0)*clhs90 + DN(0,1)*clhs185 + DN(0,2)*clhs240 + clhs242;
            lhs(2,15)=-clhs243;
            lhs(2,16)=DN(0,0)*clhs97 + DN(0,1)*clhs189 + DN(0,2)*clhs244 + clhs245;
            lhs(2,17)=DN(0,0)*clhs106 + DN(0,1)*clhs193 + DN(0,2)*clhs246 + clhs247;
            lhs(2,18)=DN(0,0)*clhs112 + DN(0,1)*clhs198 + DN(0,2)*clhs248 + clhs250;
            lhs(2,19)=-clhs251;
            lhs(2,20)=DN(0,0)*clhs119 + DN(0,1)*clhs202 + DN(0,2)*clhs252 + clhs253;
            lhs(2,21)=DN(0,0)*clhs128 + DN(0,1)*clhs206 + DN(0,2)*clhs254 + clhs255;
            lhs(2,22)=DN(0,0)*clhs134 + DN(0,1)*clhs211 + DN(0,2)*clhs256 + clhs258;
            lhs(2,23)=-clhs259;
            lhs(3,0)=clhs25*clhs262;
            lhs(3,1)=clhs148*clhs262;
            lhs(3,2)=clhs218*clhs262;
            lhs(3,3)=clhs260*(clhs142 + clhs217 + clhs7);
            lhs(3,4)=clhs261*clhs48 + clhs263;
            lhs(3,5)=clhs161*clhs261 + clhs264;
            lhs(3,6)=clhs227*clhs261 + clhs265;
            lhs(3,7)=clhs266;
            lhs(3,8)=clhs261*clhs70 + clhs267;
            lhs(3,9)=clhs174*clhs261 + clhs268;
            lhs(3,10)=clhs235*clhs261 + clhs269;
            lhs(3,11)=clhs270;
            lhs(3,12)=clhs261*clhs92 + clhs271;
            lhs(3,13)=clhs187*clhs261 + clhs272;
            lhs(3,14)=clhs243*clhs261 + clhs273;
            lhs(3,15)=clhs274;
            lhs(3,16)=clhs114*clhs261 + clhs275;
            lhs(3,17)=clhs200*clhs261 + clhs276;
            lhs(3,18)=clhs251*clhs261 + clhs277;
            lhs(3,19)=clhs278;
            lhs(3,20)=clhs136*clhs261 + clhs279;
            lhs(3,21)=clhs213*clhs261 + clhs280;
            lhs(3,22)=clhs259*clhs261 + clhs281;
            lhs(3,23)=clhs282;
            lhs(4,0)=DN(1,0)*clhs2 + DN(1,1)*clhs4 + DN(1,2)*clhs6 + clhs34;
            lhs(4,1)=DN(1,0)*clhs11 + DN(1,1)*clhs13 + DN(1,2)*clhs16 + clhs151;
            lhs(4,2)=DN(1,0)*clhs19 + DN(1,1)*clhs21 + DN(1,2)*clhs23 + clhs221;
            lhs(4,3)=-clhs263;
            lhs(4,4)=DN(1,0)*clhs26 + DN(1,1)*clhs28 + DN(1,2)*clhs30 + clhs10*clhs284 + clhs283;
            lhs(4,5)=DN(1,0)*clhs35 + DN(1,1)*clhs37 + DN(1,2)*clhs40 + clhs286;
            lhs(4,6)=DN(1,0)*clhs42 + DN(1,1)*clhs44 + DN(1,2)*clhs46 + clhs287;
            lhs(4,7)=-clhs288;
            lhs(4,8)=DN(1,0)*clhs49 + DN(1,1)*clhs51 + DN(1,2)*clhs53 + clhs292;
            lhs(4,9)=DN(1,0)*clhs57 + DN(1,1)*clhs59 + DN(1,2)*clhs62 + clhs293;
            lhs(4,10)=DN(1,0)*clhs64 + DN(1,1)*clhs66 + DN(1,2)*clhs68 + clhs294;
            lhs(4,11)=-clhs295;
            lhs(4,12)=DN(1,0)*clhs71 + DN(1,1)*clhs73 + DN(1,2)*clhs75 + clhs298;
            lhs(4,13)=DN(1,0)*clhs79 + DN(1,1)*clhs81 + DN(1,2)*clhs84 + clhs299;
            lhs(4,14)=DN(1,0)*clhs86 + DN(1,1)*clhs88 + DN(1,2)*clhs90 + clhs300;
            lhs(4,15)=-clhs301;
            lhs(4,16)=DN(1,0)*clhs93 + DN(1,1)*clhs95 + DN(1,2)*clhs97 + clhs304;
            lhs(4,17)=DN(1,0)*clhs101 + DN(1,1)*clhs103 + DN(1,2)*clhs106 + clhs305;
            lhs(4,18)=DN(1,0)*clhs108 + DN(1,1)*clhs110 + DN(1,2)*clhs112 + clhs306;
            lhs(4,19)=-clhs307;
            lhs(4,20)=DN(1,0)*clhs115 + DN(1,1)*clhs117 + DN(1,2)*clhs119 + clhs310;
            lhs(4,21)=DN(1,0)*clhs123 + DN(1,1)*clhs125 + DN(1,2)*clhs128 + clhs311;
            lhs(4,22)=DN(1,0)*clhs130 + DN(1,1)*clhs132 + DN(1,2)*clhs134 + clhs312;
            lhs(4,23)=-clhs313;
            lhs(5,0)=DN(1,0)*clhs4 + DN(1,1)*clhs137 + DN(1,2)*clhs138 + clhs41;
            lhs(5,1)=DN(1,0)*clhs13 + DN(1,1)*clhs139 + DN(1,2)*clhs141 + clhs156;
            lhs(5,2)=DN(1,0)*clhs21 + DN(1,1)*clhs143 + DN(1,2)*clhs145 + clhs223;
            lhs(5,3)=-clhs264;
            lhs(5,4)=DN(1,0)*clhs28 + DN(1,1)*clhs149 + DN(1,2)*clhs150 + clhs286;
            lhs(5,5)=DN(1,0)*clhs37 + DN(1,1)*clhs152 + DN(1,2)*clhs154 + clhs10*clhs314 + clhs283;
            lhs(5,6)=DN(1,0)*clhs44 + DN(1,1)*clhs157 + DN(1,2)*clhs159 + clhs316;
            lhs(5,7)=-clhs317;
            lhs(5,8)=DN(1,0)*clhs51 + DN(1,1)*clhs162 + DN(1,2)*clhs163 + clhs318;
            lhs(5,9)=DN(1,0)*clhs59 + DN(1,1)*clhs165 + DN(1,2)*clhs167 + clhs320;
            lhs(5,10)=DN(1,0)*clhs66 + DN(1,1)*clhs170 + DN(1,2)*clhs172 + clhs321;
            lhs(5,11)=-clhs322;
            lhs(5,12)=DN(1,0)*clhs73 + DN(1,1)*clhs175 + DN(1,2)*clhs176 + clhs323;
            lhs(5,13)=DN(1,0)*clhs81 + DN(1,1)*clhs178 + DN(1,2)*clhs180 + clhs325;
            lhs(5,14)=DN(1,0)*clhs88 + DN(1,1)*clhs183 + DN(1,2)*clhs185 + clhs326;
            lhs(5,15)=-clhs327;
            lhs(5,16)=DN(1,0)*clhs95 + DN(1,1)*clhs188 + DN(1,2)*clhs189 + clhs328;
            lhs(5,17)=DN(1,0)*clhs103 + DN(1,1)*clhs191 + DN(1,2)*clhs193 + clhs330;
            lhs(5,18)=DN(1,0)*clhs110 + DN(1,1)*clhs196 + DN(1,2)*clhs198 + clhs331;
            lhs(5,19)=-clhs332;
            lhs(5,20)=DN(1,0)*clhs117 + DN(1,1)*clhs201 + DN(1,2)*clhs202 + clhs333;
            lhs(5,21)=DN(1,0)*clhs125 + DN(1,1)*clhs204 + DN(1,2)*clhs206 + clhs335;
            lhs(5,22)=DN(1,0)*clhs132 + DN(1,1)*clhs209 + DN(1,2)*clhs211 + clhs336;
            lhs(5,23)=-clhs337;
            lhs(6,0)=DN(1,0)*clhs6 + DN(1,1)*clhs138 + DN(1,2)*clhs214 + clhs47;
            lhs(6,1)=DN(1,0)*clhs16 + DN(1,1)*clhs141 + DN(1,2)*clhs215 + clhs160;
            lhs(6,2)=DN(1,0)*clhs23 + DN(1,1)*clhs145 + DN(1,2)*clhs216 + clhs226;
            lhs(6,3)=-clhs265;
            lhs(6,4)=DN(1,0)*clhs30 + DN(1,1)*clhs150 + DN(1,2)*clhs219 + clhs287;
            lhs(6,5)=DN(1,0)*clhs40 + DN(1,1)*clhs154 + DN(1,2)*clhs222 + clhs316;
            lhs(6,6)=DN(1,0)*clhs46 + DN(1,1)*clhs159 + DN(1,2)*clhs224 + clhs10*clhs338 + clhs283;
            lhs(6,7)=-clhs339;
            lhs(6,8)=DN(1,0)*clhs53 + DN(1,1)*clhs163 + DN(1,2)*clhs228 + clhs341;
            lhs(6,9)=DN(1,0)*clhs62 + DN(1,1)*clhs167 + DN(1,2)*clhs230 + clhs342;
            lhs(6,10)=DN(1,0)*clhs68 + DN(1,1)*clhs172 + DN(1,2)*clhs232 + clhs344;
            lhs(6,11)=-clhs345;
            lhs(6,12)=DN(1,0)*clhs75 + DN(1,1)*clhs176 + DN(1,2)*clhs236 + clhs346;
            lhs(6,13)=DN(1,0)*clhs84 + DN(1,1)*clhs180 + DN(1,2)*clhs238 + clhs347;
            lhs(6,14)=DN(1,0)*clhs90 + DN(1,1)*clhs185 + DN(1,2)*clhs240 + clhs349;
            lhs(6,15)=-clhs350;
            lhs(6,16)=DN(1,0)*clhs97 + DN(1,1)*clhs189 + DN(1,2)*clhs244 + clhs351;
            lhs(6,17)=DN(1,0)*clhs106 + DN(1,1)*clhs193 + DN(1,2)*clhs246 + clhs352;
            lhs(6,18)=DN(1,0)*clhs112 + DN(1,1)*clhs198 + DN(1,2)*clhs248 + clhs354;
            lhs(6,19)=-clhs355;
            lhs(6,20)=DN(1,0)*clhs119 + DN(1,1)*clhs202 + DN(1,2)*clhs252 + clhs356;
            lhs(6,21)=DN(1,0)*clhs128 + DN(1,1)*clhs206 + DN(1,2)*clhs254 + clhs357;
            lhs(6,22)=DN(1,0)*clhs134 + DN(1,1)*clhs211 + DN(1,2)*clhs256 + clhs359;
            lhs(6,23)=-clhs360;
            lhs(7,0)=clhs261*clhs263 + clhs48;
            lhs(7,1)=clhs161 + clhs261*clhs264;
            lhs(7,2)=clhs227 + clhs261*clhs265;
            lhs(7,3)=clhs266;
            lhs(7,4)=clhs262*clhs288;
            lhs(7,5)=clhs262*clhs317;
            lhs(7,6)=clhs262*clhs339;
            lhs(7,7)=clhs260*(clhs284 + clhs314 + clhs338);
            lhs(7,8)=clhs261*clhs295 + clhs361;
            lhs(7,9)=clhs261*clhs322 + clhs362;
            lhs(7,10)=clhs261*clhs345 + clhs363;
            lhs(7,11)=clhs364;
            lhs(7,12)=clhs261*clhs301 + clhs365;
            lhs(7,13)=clhs261*clhs327 + clhs366;
            lhs(7,14)=clhs261*clhs350 + clhs367;
            lhs(7,15)=clhs368;
            lhs(7,16)=clhs261*clhs307 + clhs369;
            lhs(7,17)=clhs261*clhs332 + clhs370;
            lhs(7,18)=clhs261*clhs355 + clhs371;
            lhs(7,19)=clhs372;
            lhs(7,20)=clhs261*clhs313 + clhs373;
            lhs(7,21)=clhs261*clhs337 + clhs374;
            lhs(7,22)=clhs261*clhs360 + clhs375;
            lhs(7,23)=clhs376;
            lhs(8,0)=DN(2,0)*clhs2 + DN(2,1)*clhs4 + DN(2,2)*clhs6 + clhs56;
            lhs(8,1)=DN(2,0)*clhs11 + DN(2,1)*clhs13 + DN(2,2)*clhs16 + clhs164;
            lhs(8,2)=DN(2,0)*clhs19 + DN(2,1)*clhs21 + DN(2,2)*clhs23 + clhs229;
            lhs(8,3)=-clhs267;
            lhs(8,4)=DN(2,0)*clhs26 + DN(2,1)*clhs28 + DN(2,2)*clhs30 + clhs292;
            lhs(8,5)=DN(2,0)*clhs35 + DN(2,1)*clhs37 + DN(2,2)*clhs40 + clhs318;
            lhs(8,6)=DN(2,0)*clhs42 + DN(2,1)*clhs44 + DN(2,2)*clhs46 + clhs341;
            lhs(8,7)=-clhs361;
            lhs(8,8)=DN(2,0)*clhs49 + DN(2,1)*clhs51 + DN(2,2)*clhs53 + clhs10*clhs378 + clhs377;
            lhs(8,9)=DN(2,0)*clhs57 + DN(2,1)*clhs59 + DN(2,2)*clhs62 + clhs380;
            lhs(8,10)=DN(2,0)*clhs64 + DN(2,1)*clhs66 + DN(2,2)*clhs68 + clhs381;
            lhs(8,11)=-clhs382;
            lhs(8,12)=DN(2,0)*clhs71 + DN(2,1)*clhs73 + DN(2,2)*clhs75 + clhs386;
            lhs(8,13)=DN(2,0)*clhs79 + DN(2,1)*clhs81 + DN(2,2)*clhs84 + clhs387;
            lhs(8,14)=DN(2,0)*clhs86 + DN(2,1)*clhs88 + DN(2,2)*clhs90 + clhs388;
            lhs(8,15)=-clhs389;
            lhs(8,16)=DN(2,0)*clhs93 + DN(2,1)*clhs95 + DN(2,2)*clhs97 + clhs392;
            lhs(8,17)=DN(2,0)*clhs101 + DN(2,1)*clhs103 + DN(2,2)*clhs106 + clhs393;
            lhs(8,18)=DN(2,0)*clhs108 + DN(2,1)*clhs110 + DN(2,2)*clhs112 + clhs394;
            lhs(8,19)=-clhs395;
            lhs(8,20)=DN(2,0)*clhs115 + DN(2,1)*clhs117 + DN(2,2)*clhs119 + clhs398;
            lhs(8,21)=DN(2,0)*clhs123 + DN(2,1)*clhs125 + DN(2,2)*clhs128 + clhs399;
            lhs(8,22)=DN(2,0)*clhs130 + DN(2,1)*clhs132 + DN(2,2)*clhs134 + clhs400;
            lhs(8,23)=-clhs401;
            lhs(9,0)=DN(2,0)*clhs4 + DN(2,1)*clhs137 + DN(2,2)*clhs138 + clhs63;
            lhs(9,1)=DN(2,0)*clhs13 + DN(2,1)*clhs139 + DN(2,2)*clhs141 + clhs169;
            lhs(9,2)=DN(2,0)*clhs21 + DN(2,1)*clhs143 + DN(2,2)*clhs145 + clhs231;
            lhs(9,3)=-clhs268;
            lhs(9,4)=DN(2,0)*clhs28 + DN(2,1)*clhs149 + DN(2,2)*clhs150 + clhs293;
            lhs(9,5)=DN(2,0)*clhs37 + DN(2,1)*clhs152 + DN(2,2)*clhs154 + clhs320;
            lhs(9,6)=DN(2,0)*clhs44 + DN(2,1)*clhs157 + DN(2,2)*clhs159 + clhs342;
            lhs(9,7)=-clhs362;
            lhs(9,8)=DN(2,0)*clhs51 + DN(2,1)*clhs162 + DN(2,2)*clhs163 + clhs380;
            lhs(9,9)=DN(2,0)*clhs59 + DN(2,1)*clhs165 + DN(2,2)*clhs167 + clhs10*clhs402 + clhs377;
            lhs(9,10)=DN(2,0)*clhs66 + DN(2,1)*clhs170 + DN(2,2)*clhs172 + clhs404;
            lhs(9,11)=-clhs405;
            lhs(9,12)=DN(2,0)*clhs73 + DN(2,1)*clhs175 + DN(2,2)*clhs176 + clhs406;
            lhs(9,13)=DN(2,0)*clhs81 + DN(2,1)*clhs178 + DN(2,2)*clhs180 + clhs408;
            lhs(9,14)=DN(2,0)*clhs88 + DN(2,1)*clhs183 + DN(2,2)*clhs185 + clhs409;
            lhs(9,15)=-clhs410;
            lhs(9,16)=DN(2,0)*clhs95 + DN(2,1)*clhs188 + DN(2,2)*clhs189 + clhs411;
            lhs(9,17)=DN(2,0)*clhs103 + DN(2,1)*clhs191 + DN(2,2)*clhs193 + clhs413;
            lhs(9,18)=DN(2,0)*clhs110 + DN(2,1)*clhs196 + DN(2,2)*clhs198 + clhs414;
            lhs(9,19)=-clhs415;
            lhs(9,20)=DN(2,0)*clhs117 + DN(2,1)*clhs201 + DN(2,2)*clhs202 + clhs416;
            lhs(9,21)=DN(2,0)*clhs125 + DN(2,1)*clhs204 + DN(2,2)*clhs206 + clhs418;
            lhs(9,22)=DN(2,0)*clhs132 + DN(2,1)*clhs209 + DN(2,2)*clhs211 + clhs419;
            lhs(9,23)=-clhs420;
            lhs(10,0)=DN(2,0)*clhs6 + DN(2,1)*clhs138 + DN(2,2)*clhs214 + clhs69;
            lhs(10,1)=DN(2,0)*clhs16 + DN(2,1)*clhs141 + DN(2,2)*clhs215 + clhs173;
            lhs(10,2)=DN(2,0)*clhs23 + DN(2,1)*clhs145 + DN(2,2)*clhs216 + clhs234;
            lhs(10,3)=-clhs269;
            lhs(10,4)=DN(2,0)*clhs30 + DN(2,1)*clhs150 + DN(2,2)*clhs219 + clhs294;
            lhs(10,5)=DN(2,0)*clhs40 + DN(2,1)*clhs154 + DN(2,2)*clhs222 + clhs321;
            lhs(10,6)=DN(2,0)*clhs46 + DN(2,1)*clhs159 + DN(2,2)*clhs224 + clhs344;
            lhs(10,7)=-clhs363;
            lhs(10,8)=DN(2,0)*clhs53 + DN(2,1)*clhs163 + DN(2,2)*clhs228 + clhs381;
            lhs(10,9)=DN(2,0)*clhs62 + DN(2,1)*clhs167 + DN(2,2)*clhs230 + clhs404;
            lhs(10,10)=DN(2,0)*clhs68 + DN(2,1)*clhs172 + DN(2,2)*clhs232 + clhs10*clhs421 + clhs377;
            lhs(10,11)=-clhs422;
            lhs(10,12)=DN(2,0)*clhs75 + DN(2,1)*clhs176 + DN(2,2)*clhs236 + clhs424;
            lhs(10,13)=DN(2,0)*clhs84 + DN(2,1)*clhs180 + DN(2,2)*clhs238 + clhs425;
            lhs(10,14)=DN(2,0)*clhs90 + DN(2,1)*clhs185 + DN(2,2)*clhs240 + clhs427;
            lhs(10,15)=-clhs428;
            lhs(10,16)=DN(2,0)*clhs97 + DN(2,1)*clhs189 + DN(2,2)*clhs244 + clhs429;
            lhs(10,17)=DN(2,0)*clhs106 + DN(2,1)*clhs193 + DN(2,2)*clhs246 + clhs430;
            lhs(10,18)=DN(2,0)*clhs112 + DN(2,1)*clhs198 + DN(2,2)*clhs248 + clhs432;
            lhs(10,19)=-clhs433;
            lhs(10,20)=DN(2,0)*clhs119 + DN(2,1)*clhs202 + DN(2,2)*clhs252 + clhs434;
            lhs(10,21)=DN(2,0)*clhs128 + DN(2,1)*clhs206 + DN(2,2)*clhs254 + clhs435;
            lhs(10,22)=DN(2,0)*clhs134 + DN(2,1)*clhs211 + DN(2,2)*clhs256 + clhs437;
            lhs(10,23)=-clhs438;
            lhs(11,0)=clhs261*clhs267 + clhs70;
            lhs(11,1)=clhs174 + clhs261*clhs268;
            lhs(11,2)=clhs235 + clhs261*clhs269;
            lhs(11,3)=clhs270;
            lhs(11,4)=clhs261*clhs361 + clhs295;
            lhs(11,5)=clhs261*clhs362 + clhs322;
            lhs(11,6)=clhs261*clhs363 + clhs345;
            lhs(11,7)=clhs364;
            lhs(11,8)=clhs262*clhs382;
            lhs(11,9)=clhs262*clhs405;
            lhs(11,10)=clhs262*clhs422;
            lhs(11,11)=clhs260*(clhs378 + clhs402 + clhs421);
            lhs(11,12)=clhs261*clhs389 + clhs439;
            lhs(11,13)=clhs261*clhs410 + clhs440;
            lhs(11,14)=clhs261*clhs428 + clhs441;
            lhs(11,15)=clhs442;
            lhs(11,16)=clhs261*clhs395 + clhs443;
            lhs(11,17)=clhs261*clhs415 + clhs444;
            lhs(11,18)=clhs261*clhs433 + clhs445;
            lhs(11,19)=clhs446;
            lhs(11,20)=clhs261*clhs401 + clhs447;
            lhs(11,21)=clhs261*clhs420 + clhs448;
            lhs(11,22)=clhs261*clhs438 + clhs449;
            lhs(11,23)=clhs450;
            lhs(12,0)=DN(3,0)*clhs2 + DN(3,1)*clhs4 + DN(3,2)*clhs6 + clhs78;
            lhs(12,1)=DN(3,0)*clhs11 + DN(3,1)*clhs13 + DN(3,2)*clhs16 + clhs177;
            lhs(12,2)=DN(3,0)*clhs19 + DN(3,1)*clhs21 + DN(3,2)*clhs23 + clhs237;
            lhs(12,3)=-clhs271;
            lhs(12,4)=DN(3,0)*clhs26 + DN(3,1)*clhs28 + DN(3,2)*clhs30 + clhs298;
            lhs(12,5)=DN(3,0)*clhs35 + DN(3,1)*clhs37 + DN(3,2)*clhs40 + clhs323;
            lhs(12,6)=DN(3,0)*clhs42 + DN(3,1)*clhs44 + DN(3,2)*clhs46 + clhs346;
            lhs(12,7)=-clhs365;
            lhs(12,8)=DN(3,0)*clhs49 + DN(3,1)*clhs51 + DN(3,2)*clhs53 + clhs386;
            lhs(12,9)=DN(3,0)*clhs57 + DN(3,1)*clhs59 + DN(3,2)*clhs62 + clhs406;
            lhs(12,10)=DN(3,0)*clhs64 + DN(3,1)*clhs66 + DN(3,2)*clhs68 + clhs424;
            lhs(12,11)=-clhs439;
            lhs(12,12)=DN(3,0)*clhs71 + DN(3,1)*clhs73 + DN(3,2)*clhs75 + clhs10*clhs452 + clhs451;
            lhs(12,13)=DN(3,0)*clhs79 + DN(3,1)*clhs81 + DN(3,2)*clhs84 + clhs454;
            lhs(12,14)=DN(3,0)*clhs86 + DN(3,1)*clhs88 + DN(3,2)*clhs90 + clhs455;
            lhs(12,15)=-clhs456;
            lhs(12,16)=DN(3,0)*clhs93 + DN(3,1)*clhs95 + DN(3,2)*clhs97 + clhs460;
            lhs(12,17)=DN(3,0)*clhs101 + DN(3,1)*clhs103 + DN(3,2)*clhs106 + clhs461;
            lhs(12,18)=DN(3,0)*clhs108 + DN(3,1)*clhs110 + DN(3,2)*clhs112 + clhs462;
            lhs(12,19)=-clhs463;
            lhs(12,20)=DN(3,0)*clhs115 + DN(3,1)*clhs117 + DN(3,2)*clhs119 + clhs466;
            lhs(12,21)=DN(3,0)*clhs123 + DN(3,1)*clhs125 + DN(3,2)*clhs128 + clhs467;
            lhs(12,22)=DN(3,0)*clhs130 + DN(3,1)*clhs132 + DN(3,2)*clhs134 + clhs468;
            lhs(12,23)=-clhs469;
            lhs(13,0)=DN(3,0)*clhs4 + DN(3,1)*clhs137 + DN(3,2)*clhs138 + clhs85;
            lhs(13,1)=DN(3,0)*clhs13 + DN(3,1)*clhs139 + DN(3,2)*clhs141 + clhs182;
            lhs(13,2)=DN(3,0)*clhs21 + DN(3,1)*clhs143 + DN(3,2)*clhs145 + clhs239;
            lhs(13,3)=-clhs272;
            lhs(13,4)=DN(3,0)*clhs28 + DN(3,1)*clhs149 + DN(3,2)*clhs150 + clhs299;
            lhs(13,5)=DN(3,0)*clhs37 + DN(3,1)*clhs152 + DN(3,2)*clhs154 + clhs325;
            lhs(13,6)=DN(3,0)*clhs44 + DN(3,1)*clhs157 + DN(3,2)*clhs159 + clhs347;
            lhs(13,7)=-clhs366;
            lhs(13,8)=DN(3,0)*clhs51 + DN(3,1)*clhs162 + DN(3,2)*clhs163 + clhs387;
            lhs(13,9)=DN(3,0)*clhs59 + DN(3,1)*clhs165 + DN(3,2)*clhs167 + clhs408;
            lhs(13,10)=DN(3,0)*clhs66 + DN(3,1)*clhs170 + DN(3,2)*clhs172 + clhs425;
            lhs(13,11)=-clhs440;
            lhs(13,12)=DN(3,0)*clhs73 + DN(3,1)*clhs175 + DN(3,2)*clhs176 + clhs454;
            lhs(13,13)=DN(3,0)*clhs81 + DN(3,1)*clhs178 + DN(3,2)*clhs180 + clhs10*clhs470 + clhs451;
            lhs(13,14)=DN(3,0)*clhs88 + DN(3,1)*clhs183 + DN(3,2)*clhs185 + clhs472;
            lhs(13,15)=-clhs473;
            lhs(13,16)=DN(3,0)*clhs95 + DN(3,1)*clhs188 + DN(3,2)*clhs189 + clhs474;
            lhs(13,17)=DN(3,0)*clhs103 + DN(3,1)*clhs191 + DN(3,2)*clhs193 + clhs476;
            lhs(13,18)=DN(3,0)*clhs110 + DN(3,1)*clhs196 + DN(3,2)*clhs198 + clhs477;
            lhs(13,19)=-clhs478;
            lhs(13,20)=DN(3,0)*clhs117 + DN(3,1)*clhs201 + DN(3,2)*clhs202 + clhs479;
            lhs(13,21)=DN(3,0)*clhs125 + DN(3,1)*clhs204 + DN(3,2)*clhs206 + clhs481;
            lhs(13,22)=DN(3,0)*clhs132 + DN(3,1)*clhs209 + DN(3,2)*clhs211 + clhs482;
            lhs(13,23)=-clhs483;
            lhs(14,0)=DN(3,0)*clhs6 + DN(3,1)*clhs138 + DN(3,2)*clhs214 + clhs91;
            lhs(14,1)=DN(3,0)*clhs16 + DN(3,1)*clhs141 + DN(3,2)*clhs215 + clhs186;
            lhs(14,2)=DN(3,0)*clhs23 + DN(3,1)*clhs145 + DN(3,2)*clhs216 + clhs242;
            lhs(14,3)=-clhs273;
            lhs(14,4)=DN(3,0)*clhs30 + DN(3,1)*clhs150 + DN(3,2)*clhs219 + clhs300;
            lhs(14,5)=DN(3,0)*clhs40 + DN(3,1)*clhs154 + DN(3,2)*clhs222 + clhs326;
            lhs(14,6)=DN(3,0)*clhs46 + DN(3,1)*clhs159 + DN(3,2)*clhs224 + clhs349;
            lhs(14,7)=-clhs367;
            lhs(14,8)=DN(3,0)*clhs53 + DN(3,1)*clhs163 + DN(3,2)*clhs228 + clhs388;
            lhs(14,9)=DN(3,0)*clhs62 + DN(3,1)*clhs167 + DN(3,2)*clhs230 + clhs409;
            lhs(14,10)=DN(3,0)*clhs68 + DN(3,1)*clhs172 + DN(3,2)*clhs232 + clhs427;
            lhs(14,11)=-clhs441;
            lhs(14,12)=DN(3,0)*clhs75 + DN(3,1)*clhs176 + DN(3,2)*clhs236 + clhs455;
            lhs(14,13)=DN(3,0)*clhs84 + DN(3,1)*clhs180 + DN(3,2)*clhs238 + clhs472;
            lhs(14,14)=DN(3,0)*clhs90 + DN(3,1)*clhs185 + DN(3,2)*clhs240 + clhs10*clhs484 + clhs451;
            lhs(14,15)=-clhs485;
            lhs(14,16)=DN(3,0)*clhs97 + DN(3,1)*clhs189 + DN(3,2)*clhs244 + clhs487;
            lhs(14,17)=DN(3,0)*clhs106 + DN(3,1)*clhs193 + DN(3,2)*clhs246 + clhs488;
            lhs(14,18)=DN(3,0)*clhs112 + DN(3,1)*clhs198 + DN(3,2)*clhs248 + clhs490;
            lhs(14,19)=-clhs491;
            lhs(14,20)=DN(3,0)*clhs119 + DN(3,1)*clhs202 + DN(3,2)*clhs252 + clhs492;
            lhs(14,21)=DN(3,0)*clhs128 + DN(3,1)*clhs206 + DN(3,2)*clhs254 + clhs493;
            lhs(14,22)=DN(3,0)*clhs134 + DN(3,1)*clhs211 + DN(3,2)*clhs256 + clhs495;
            lhs(14,23)=-clhs496;
            lhs(15,0)=clhs261*clhs271 + clhs92;
            lhs(15,1)=clhs187 + clhs261*clhs272;
            lhs(15,2)=clhs243 + clhs261*clhs273;
            lhs(15,3)=clhs274;
            lhs(15,4)=clhs261*clhs365 + clhs301;
            lhs(15,5)=clhs261*clhs366 + clhs327;
            lhs(15,6)=clhs261*clhs367 + clhs350;
            lhs(15,7)=clhs368;
            lhs(15,8)=clhs261*clhs439 + clhs389;
            lhs(15,9)=clhs261*clhs440 + clhs410;
            lhs(15,10)=clhs261*clhs441 + clhs428;
            lhs(15,11)=clhs442;
            lhs(15,12)=clhs262*clhs456;
            lhs(15,13)=clhs262*clhs473;
            lhs(15,14)=clhs262*clhs485;
            lhs(15,15)=clhs260*(clhs452 + clhs470 + clhs484);
            lhs(15,16)=clhs261*clhs463 + clhs497;
            lhs(15,17)=clhs261*clhs478 + clhs498;
            lhs(15,18)=clhs261*clhs491 + clhs499;
            lhs(15,19)=clhs500;
            lhs(15,20)=clhs261*clhs469 + clhs501;
            lhs(15,21)=clhs261*clhs483 + clhs502;
            lhs(15,22)=clhs261*clhs496 + clhs503;
            lhs(15,23)=clhs504;
            lhs(16,0)=DN(4,0)*clhs2 + DN(4,1)*clhs4 + DN(4,2)*clhs6 + clhs100;
            lhs(16,1)=DN(4,0)*clhs11 + DN(4,1)*clhs13 + DN(4,2)*clhs16 + clhs190;
            lhs(16,2)=DN(4,0)*clhs19 + DN(4,1)*clhs21 + DN(4,2)*clhs23 + clhs245;
            lhs(16,3)=-clhs275;
            lhs(16,4)=DN(4,0)*clhs26 + DN(4,1)*clhs28 + DN(4,2)*clhs30 + clhs304;
            lhs(16,5)=DN(4,0)*clhs35 + DN(4,1)*clhs37 + DN(4,2)*clhs40 + clhs328;
            lhs(16,6)=DN(4,0)*clhs42 + DN(4,1)*clhs44 + DN(4,2)*clhs46 + clhs351;
            lhs(16,7)=-clhs369;
            lhs(16,8)=DN(4,0)*clhs49 + DN(4,1)*clhs51 + DN(4,2)*clhs53 + clhs392;
            lhs(16,9)=DN(4,0)*clhs57 + DN(4,1)*clhs59 + DN(4,2)*clhs62 + clhs411;
            lhs(16,10)=DN(4,0)*clhs64 + DN(4,1)*clhs66 + DN(4,2)*clhs68 + clhs429;
            lhs(16,11)=-clhs443;
            lhs(16,12)=DN(4,0)*clhs71 + DN(4,1)*clhs73 + DN(4,2)*clhs75 + clhs460;
            lhs(16,13)=DN(4,0)*clhs79 + DN(4,1)*clhs81 + DN(4,2)*clhs84 + clhs474;
            lhs(16,14)=DN(4,0)*clhs86 + DN(4,1)*clhs88 + DN(4,2)*clhs90 + clhs487;
            lhs(16,15)=-clhs497;
            lhs(16,16)=DN(4,0)*clhs93 + DN(4,1)*clhs95 + DN(4,2)*clhs97 + clhs10*clhs506 + clhs505;
            lhs(16,17)=DN(4,0)*clhs101 + DN(4,1)*clhs103 + DN(4,2)*clhs106 + clhs508;
            lhs(16,18)=DN(4,0)*clhs108 + DN(4,1)*clhs110 + DN(4,2)*clhs112 + clhs509;
            lhs(16,19)=-clhs510;
            lhs(16,20)=DN(4,0)*clhs115 + DN(4,1)*clhs117 + DN(4,2)*clhs119 + clhs513;
            lhs(16,21)=DN(4,0)*clhs123 + DN(4,1)*clhs125 + DN(4,2)*clhs128 + clhs514;
            lhs(16,22)=DN(4,0)*clhs130 + DN(4,1)*clhs132 + DN(4,2)*clhs134 + clhs515;
            lhs(16,23)=-clhs516;
            lhs(17,0)=DN(4,0)*clhs4 + DN(4,1)*clhs137 + DN(4,2)*clhs138 + clhs107;
            lhs(17,1)=DN(4,0)*clhs13 + DN(4,1)*clhs139 + DN(4,2)*clhs141 + clhs195;
            lhs(17,2)=DN(4,0)*clhs21 + DN(4,1)*clhs143 + DN(4,2)*clhs145 + clhs247;
            lhs(17,3)=-clhs276;
            lhs(17,4)=DN(4,0)*clhs28 + DN(4,1)*clhs149 + DN(4,2)*clhs150 + clhs305;
            lhs(17,5)=DN(4,0)*clhs37 + DN(4,1)*clhs152 + DN(4,2)*clhs154 + clhs330;
            lhs(17,6)=DN(4,0)*clhs44 + DN(4,1)*clhs157 + DN(4,2)*clhs159 + clhs352;
            lhs(17,7)=-clhs370;
            lhs(17,8)=DN(4,0)*clhs51 + DN(4,1)*clhs162 + DN(4,2)*clhs163 + clhs393;
            lhs(17,9)=DN(4,0)*clhs59 + DN(4,1)*clhs165 + DN(4,2)*clhs167 + clhs413;
            lhs(17,10)=DN(4,0)*clhs66 + DN(4,1)*clhs170 + DN(4,2)*clhs172 + clhs430;
            lhs(17,11)=-clhs444;
            lhs(17,12)=DN(4,0)*clhs73 + DN(4,1)*clhs175 + DN(4,2)*clhs176 + clhs461;
            lhs(17,13)=DN(4,0)*clhs81 + DN(4,1)*clhs178 + DN(4,2)*clhs180 + clhs476;
            lhs(17,14)=DN(4,0)*clhs88 + DN(4,1)*clhs183 + DN(4,2)*clhs185 + clhs488;
            lhs(17,15)=-clhs498;
            lhs(17,16)=DN(4,0)*clhs95 + DN(4,1)*clhs188 + DN(4,2)*clhs189 + clhs508;
            lhs(17,17)=DN(4,0)*clhs103 + DN(4,1)*clhs191 + DN(4,2)*clhs193 + clhs10*clhs517 + clhs505;
            lhs(17,18)=DN(4,0)*clhs110 + DN(4,1)*clhs196 + DN(4,2)*clhs198 + clhs519;
            lhs(17,19)=-clhs520;
            lhs(17,20)=DN(4,0)*clhs117 + DN(4,1)*clhs201 + DN(4,2)*clhs202 + clhs521;
            lhs(17,21)=DN(4,0)*clhs125 + DN(4,1)*clhs204 + DN(4,2)*clhs206 + clhs523;
            lhs(17,22)=DN(4,0)*clhs132 + DN(4,1)*clhs209 + DN(4,2)*clhs211 + clhs524;
            lhs(17,23)=-clhs525;
            lhs(18,0)=DN(4,0)*clhs6 + DN(4,1)*clhs138 + DN(4,2)*clhs214 + clhs113;
            lhs(18,1)=DN(4,0)*clhs16 + DN(4,1)*clhs141 + DN(4,2)*clhs215 + clhs199;
            lhs(18,2)=DN(4,0)*clhs23 + DN(4,1)*clhs145 + DN(4,2)*clhs216 + clhs250;
            lhs(18,3)=-clhs277;
            lhs(18,4)=DN(4,0)*clhs30 + DN(4,1)*clhs150 + DN(4,2)*clhs219 + clhs306;
            lhs(18,5)=DN(4,0)*clhs40 + DN(4,1)*clhs154 + DN(4,2)*clhs222 + clhs331;
            lhs(18,6)=DN(4,0)*clhs46 + DN(4,1)*clhs159 + DN(4,2)*clhs224 + clhs354;
            lhs(18,7)=-clhs371;
            lhs(18,8)=DN(4,0)*clhs53 + DN(4,1)*clhs163 + DN(4,2)*clhs228 + clhs394;
            lhs(18,9)=DN(4,0)*clhs62 + DN(4,1)*clhs167 + DN(4,2)*clhs230 + clhs414;
            lhs(18,10)=DN(4,0)*clhs68 + DN(4,1)*clhs172 + DN(4,2)*clhs232 + clhs432;
            lhs(18,11)=-clhs445;
            lhs(18,12)=DN(4,0)*clhs75 + DN(4,1)*clhs176 + DN(4,2)*clhs236 + clhs462;
            lhs(18,13)=DN(4,0)*clhs84 + DN(4,1)*clhs180 + DN(4,2)*clhs238 + clhs477;
            lhs(18,14)=DN(4,0)*clhs90 + DN(4,1)*clhs185 + DN(4,2)*clhs240 + clhs490;
            lhs(18,15)=-clhs499;
            lhs(18,16)=DN(4,0)*clhs97 + DN(4,1)*clhs189 + DN(4,2)*clhs244 + clhs509;
            lhs(18,17)=DN(4,0)*clhs106 + DN(4,1)*clhs193 + DN(4,2)*clhs246 + clhs519;
            lhs(18,18)=DN(4,0)*clhs112 + DN(4,1)*clhs198 + DN(4,2)*clhs248 + clhs10*clhs526 + clhs505;
            lhs(18,19)=-clhs527;
            lhs(18,20)=DN(4,0)*clhs119 + DN(4,1)*clhs202 + DN(4,2)*clhs252 + clhs529;
            lhs(18,21)=DN(4,0)*clhs128 + DN(4,1)*clhs206 + DN(4,2)*clhs254 + clhs530;
            lhs(18,22)=DN(4,0)*clhs134 + DN(4,1)*clhs211 + DN(4,2)*clhs256 + clhs532;
            lhs(18,23)=-clhs533;
            lhs(19,0)=clhs114 + clhs261*clhs275;
            lhs(19,1)=clhs200 + clhs261*clhs276;
            lhs(19,2)=clhs251 + clhs261*clhs277;
            lhs(19,3)=clhs278;
            lhs(19,4)=clhs261*clhs369 + clhs307;
            lhs(19,5)=clhs261*clhs370 + clhs332;
            lhs(19,6)=clhs261*clhs371 + clhs355;
            lhs(19,7)=clhs372;
            lhs(19,8)=clhs261*clhs443 + clhs395;
            lhs(19,9)=clhs261*clhs444 + clhs415;
            lhs(19,10)=clhs261*clhs445 + clhs433;
            lhs(19,11)=clhs446;
            lhs(19,12)=clhs261*clhs497 + clhs463;
            lhs(19,13)=clhs261*clhs498 + clhs478;
            lhs(19,14)=clhs261*clhs499 + clhs491;
            lhs(19,15)=clhs500;
            lhs(19,16)=clhs262*clhs510;
            lhs(19,17)=clhs262*clhs520;
            lhs(19,18)=clhs262*clhs527;
            lhs(19,19)=clhs260*(clhs506 + clhs517 + clhs526);
            lhs(19,20)=clhs261*clhs516 + clhs534;
            lhs(19,21)=clhs261*clhs525 + clhs535;
            lhs(19,22)=clhs261*clhs533 + clhs536;
            lhs(19,23)=clhs537;
            lhs(20,0)=DN(5,0)*clhs2 + DN(5,1)*clhs4 + DN(5,2)*clhs6 + clhs122;
            lhs(20,1)=DN(5,0)*clhs11 + DN(5,1)*clhs13 + DN(5,2)*clhs16 + clhs203;
            lhs(20,2)=DN(5,0)*clhs19 + DN(5,1)*clhs21 + DN(5,2)*clhs23 + clhs253;
            lhs(20,3)=-clhs279;
            lhs(20,4)=DN(5,0)*clhs26 + DN(5,1)*clhs28 + DN(5,2)*clhs30 + clhs310;
            lhs(20,5)=DN(5,0)*clhs35 + DN(5,1)*clhs37 + DN(5,2)*clhs40 + clhs333;
            lhs(20,6)=DN(5,0)*clhs42 + DN(5,1)*clhs44 + DN(5,2)*clhs46 + clhs356;
            lhs(20,7)=-clhs373;
            lhs(20,8)=DN(5,0)*clhs49 + DN(5,1)*clhs51 + DN(5,2)*clhs53 + clhs398;
            lhs(20,9)=DN(5,0)*clhs57 + DN(5,1)*clhs59 + DN(5,2)*clhs62 + clhs416;
            lhs(20,10)=DN(5,0)*clhs64 + DN(5,1)*clhs66 + DN(5,2)*clhs68 + clhs434;
            lhs(20,11)=-clhs447;
            lhs(20,12)=DN(5,0)*clhs71 + DN(5,1)*clhs73 + DN(5,2)*clhs75 + clhs466;
            lhs(20,13)=DN(5,0)*clhs79 + DN(5,1)*clhs81 + DN(5,2)*clhs84 + clhs479;
            lhs(20,14)=DN(5,0)*clhs86 + DN(5,1)*clhs88 + DN(5,2)*clhs90 + clhs492;
            lhs(20,15)=-clhs501;
            lhs(20,16)=DN(5,0)*clhs93 + DN(5,1)*clhs95 + DN(5,2)*clhs97 + clhs513;
            lhs(20,17)=DN(5,0)*clhs101 + DN(5,1)*clhs103 + DN(5,2)*clhs106 + clhs521;
            lhs(20,18)=DN(5,0)*clhs108 + DN(5,1)*clhs110 + DN(5,2)*clhs112 + clhs529;
            lhs(20,19)=-clhs534;
            lhs(20,20)=DN(5,0)*clhs115 + DN(5,1)*clhs117 + DN(5,2)*clhs119 + clhs10*clhs539 + clhs538;
            lhs(20,21)=DN(5,0)*clhs123 + DN(5,1)*clhs125 + DN(5,2)*clhs128 + clhs541;
            lhs(20,22)=DN(5,0)*clhs130 + DN(5,1)*clhs132 + DN(5,2)*clhs134 + clhs542;
            lhs(20,23)=-clhs543;
            lhs(21,0)=DN(5,0)*clhs4 + DN(5,1)*clhs137 + DN(5,2)*clhs138 + clhs129;
            lhs(21,1)=DN(5,0)*clhs13 + DN(5,1)*clhs139 + DN(5,2)*clhs141 + clhs208;
            lhs(21,2)=DN(5,0)*clhs21 + DN(5,1)*clhs143 + DN(5,2)*clhs145 + clhs255;
            lhs(21,3)=-clhs280;
            lhs(21,4)=DN(5,0)*clhs28 + DN(5,1)*clhs149 + DN(5,2)*clhs150 + clhs311;
            lhs(21,5)=DN(5,0)*clhs37 + DN(5,1)*clhs152 + DN(5,2)*clhs154 + clhs335;
            lhs(21,6)=DN(5,0)*clhs44 + DN(5,1)*clhs157 + DN(5,2)*clhs159 + clhs357;
            lhs(21,7)=-clhs374;
            lhs(21,8)=DN(5,0)*clhs51 + DN(5,1)*clhs162 + DN(5,2)*clhs163 + clhs399;
            lhs(21,9)=DN(5,0)*clhs59 + DN(5,1)*clhs165 + DN(5,2)*clhs167 + clhs418;
            lhs(21,10)=DN(5,0)*clhs66 + DN(5,1)*clhs170 + DN(5,2)*clhs172 + clhs435;
            lhs(21,11)=-clhs448;
            lhs(21,12)=DN(5,0)*clhs73 + DN(5,1)*clhs175 + DN(5,2)*clhs176 + clhs467;
            lhs(21,13)=DN(5,0)*clhs81 + DN(5,1)*clhs178 + DN(5,2)*clhs180 + clhs481;
            lhs(21,14)=DN(5,0)*clhs88 + DN(5,1)*clhs183 + DN(5,2)*clhs185 + clhs493;
            lhs(21,15)=-clhs502;
            lhs(21,16)=DN(5,0)*clhs95 + DN(5,1)*clhs188 + DN(5,2)*clhs189 + clhs514;
            lhs(21,17)=DN(5,0)*clhs103 + DN(5,1)*clhs191 + DN(5,2)*clhs193 + clhs523;
            lhs(21,18)=DN(5,0)*clhs110 + DN(5,1)*clhs196 + DN(5,2)*clhs198 + clhs530;
            lhs(21,19)=-clhs535;
            lhs(21,20)=DN(5,0)*clhs117 + DN(5,1)*clhs201 + DN(5,2)*clhs202 + clhs541;
            lhs(21,21)=DN(5,0)*clhs125 + DN(5,1)*clhs204 + DN(5,2)*clhs206 + clhs10*clhs544 + clhs538;
            lhs(21,22)=DN(5,0)*clhs132 + DN(5,1)*clhs209 + DN(5,2)*clhs211 + clhs545;
            lhs(21,23)=-clhs546;
            lhs(22,0)=DN(5,0)*clhs6 + DN(5,1)*clhs138 + DN(5,2)*clhs214 + clhs135;
            lhs(22,1)=DN(5,0)*clhs16 + DN(5,1)*clhs141 + DN(5,2)*clhs215 + clhs212;
            lhs(22,2)=DN(5,0)*clhs23 + DN(5,1)*clhs145 + DN(5,2)*clhs216 + clhs258;
            lhs(22,3)=-clhs281;
            lhs(22,4)=DN(5,0)*clhs30 + DN(5,1)*clhs150 + DN(5,2)*clhs219 + clhs312;
            lhs(22,5)=DN(5,0)*clhs40 + DN(5,1)*clhs154 + DN(5,2)*clhs222 + clhs336;
            lhs(22,6)=DN(5,0)*clhs46 + DN(5,1)*clhs159 + DN(5,2)*clhs224 + clhs359;
            lhs(22,7)=-clhs375;
            lhs(22,8)=DN(5,0)*clhs53 + DN(5,1)*clhs163 + DN(5,2)*clhs228 + clhs400;
            lhs(22,9)=DN(5,0)*clhs62 + DN(5,1)*clhs167 + DN(5,2)*clhs230 + clhs419;
            lhs(22,10)=DN(5,0)*clhs68 + DN(5,1)*clhs172 + DN(5,2)*clhs232 + clhs437;
            lhs(22,11)=-clhs449;
            lhs(22,12)=DN(5,0)*clhs75 + DN(5,1)*clhs176 + DN(5,2)*clhs236 + clhs468;
            lhs(22,13)=DN(5,0)*clhs84 + DN(5,1)*clhs180 + DN(5,2)*clhs238 + clhs482;
            lhs(22,14)=DN(5,0)*clhs90 + DN(5,1)*clhs185 + DN(5,2)*clhs240 + clhs495;
            lhs(22,15)=-clhs503;
            lhs(22,16)=DN(5,0)*clhs97 + DN(5,1)*clhs189 + DN(5,2)*clhs244 + clhs515;
            lhs(22,17)=DN(5,0)*clhs106 + DN(5,1)*clhs193 + DN(5,2)*clhs246 + clhs524;
            lhs(22,18)=DN(5,0)*clhs112 + DN(5,1)*clhs198 + DN(5,2)*clhs248 + clhs532;
            lhs(22,19)=-clhs536;
            lhs(22,20)=DN(5,0)*clhs119 + DN(5,1)*clhs202 + DN(5,2)*clhs252 + clhs542;
            lhs(22,21)=DN(5,0)*clhs128 + DN(5,1)*clhs206 + DN(5,2)*clhs254 + clhs545;
            lhs(22,22)=DN(5,0)*clhs134 + DN(5,1)*clhs211 + DN(5,2)*clhs256 + clhs10*clhs547 + clhs538;
            lhs(22,23)=-clhs548;
            lhs(23,0)=clhs136 + clhs261*clhs279;
            lhs(23,1)=clhs213 + clhs261*clhs280;
            lhs(23,2)=clhs259 + clhs261*clhs281;
            lhs(23,3)=clhs282;
            lhs(23,4)=clhs261*clhs373 + clhs313;
            lhs(23,5)=clhs261*clhs374 + clhs337;
            lhs(23,6)=clhs261*clhs375 + clhs360;
            lhs(23,7)=clhs376;
            lhs(23,8)=clhs261*clhs447 + clhs401;
            lhs(23,9)=clhs261*clhs448 + clhs420;
            lhs(23,10)=clhs261*clhs449 + clhs438;
            lhs(23,11)=clhs450;
            lhs(23,12)=clhs261*clhs501 + clhs469;
            lhs(23,13)=clhs261*clhs502 + clhs483;
            lhs(23,14)=clhs261*clhs503 + clhs496;
            lhs(23,15)=clhs504;
            lhs(23,16)=clhs261*clhs534 + clhs516;
            lhs(23,17)=clhs261*clhs535 + clhs525;
            lhs(23,18)=clhs261*clhs536 + clhs533;
            lhs(23,19)=clhs537;
            lhs(23,20)=clhs262*clhs543;
            lhs(23,21)=clhs262*clhs546;
            lhs(23,22)=clhs262*clhs548;
            lhs(23,23)=clhs260*(clhs539 + clhs544 + clhs547);


    // Add intermediate results to local system
    noalias(rLHS) += lhs * rData.Weight;
}

template <>
void SymbolicStokes<SymbolicStokesData<3,8>>::ComputeGaussPointLHSContribution(
    SymbolicStokesData<3,8>& rData,
    MatrixType& rLHS)
{
    const double rho = rData.Density;
    const double mu = rData.EffectiveViscosity;

    const double h = rData.ElementSize;
    const double dt = rData.DeltaTime;
    const double bdf0 = rData.bdf0;
    const double dyn_tau = rData.DynamicTau;

    // Get constitutive matrix
    const Matrix& C = rData.C;

    // Get shape function values
    const auto& N = rData.N;
    const auto& DN = rData.DN_DX;

    // Stabilization parameters
    constexpr double stab_c1 = 4.0;

    auto& lhs = rData.lhs;

    const double clhs0 =             bdf0*rho;
const double clhs1 =             pow(N[0], 2)*clhs0;
const double clhs2 =             C(0,0)*DN(0,0) + C(0,3)*DN(0,1) + C(0,5)*DN(0,2);
const double clhs3 =             C(0,3)*DN(0,0);
const double clhs4 =             C(3,3)*DN(0,1) + C(3,5)*DN(0,2) + clhs3;
const double clhs5 =             C(0,5)*DN(0,0);
const double clhs6 =             C(3,5)*DN(0,1) + C(5,5)*DN(0,2) + clhs5;
const double clhs7 =             pow(DN(0,0), 2);
const double clhs8 =             pow(h, 2);
const double clhs9 =             dyn_tau*rho/dt + mu*stab_c1/clhs8;
const double clhs10 =             1.0*clhs8*clhs9/stab_c1;
const double clhs11 =             C(0,1)*DN(0,1) + C(0,4)*DN(0,2) + clhs3;
const double clhs12 =             C(1,3)*DN(0,1);
const double clhs13 =             C(3,3)*DN(0,0) + C(3,4)*DN(0,2) + clhs12;
const double clhs14 =             C(3,5)*DN(0,0);
const double clhs15 =             C(4,5)*DN(0,2);
const double clhs16 =             C(1,5)*DN(0,1) + clhs14 + clhs15;
const double clhs17 =             DN(0,0)*clhs10;
const double clhs18 =             DN(0,1)*clhs17;
const double clhs19 =             C(0,2)*DN(0,2) + C(0,4)*DN(0,1) + clhs5;
const double clhs20 =             C(3,4)*DN(0,1);
const double clhs21 =             C(2,3)*DN(0,2) + clhs14 + clhs20;
const double clhs22 =             C(2,5)*DN(0,2);
const double clhs23 =             C(4,5)*DN(0,1) + C(5,5)*DN(0,0) + clhs22;
const double clhs24 =             DN(0,2)*clhs17;
const double clhs25 =             DN(0,0)*N[0];
const double clhs26 =             C(0,0)*DN(1,0) + C(0,3)*DN(1,1) + C(0,5)*DN(1,2);
const double clhs27 =             C(0,3)*DN(1,0);
const double clhs28 =             C(3,3)*DN(1,1) + C(3,5)*DN(1,2) + clhs27;
const double clhs29 =             C(0,5)*DN(1,0);
const double clhs30 =             C(3,5)*DN(1,1) + C(5,5)*DN(1,2) + clhs29;
const double clhs31 =             N[0]*clhs0;
const double clhs32 =             N[1]*clhs31;
const double clhs33 =             DN(0,0)*DN(1,0);
const double clhs34 =             clhs10*clhs33 + clhs32;
const double clhs35 =             C(0,1)*DN(1,1) + C(0,4)*DN(1,2) + clhs27;
const double clhs36 =             C(1,3)*DN(1,1);
const double clhs37 =             C(3,3)*DN(1,0) + C(3,4)*DN(1,2) + clhs36;
const double clhs38 =             C(3,5)*DN(1,0);
const double clhs39 =             C(4,5)*DN(1,2);
const double clhs40 =             C(1,5)*DN(1,1) + clhs38 + clhs39;
const double clhs41 =             DN(1,1)*clhs17;
const double clhs42 =             C(0,2)*DN(1,2) + C(0,4)*DN(1,1) + clhs29;
const double clhs43 =             C(3,4)*DN(1,1);
const double clhs44 =             C(2,3)*DN(1,2) + clhs38 + clhs43;
const double clhs45 =             C(2,5)*DN(1,2);
const double clhs46 =             C(4,5)*DN(1,1) + C(5,5)*DN(1,0) + clhs45;
const double clhs47 =             DN(1,2)*clhs17;
const double clhs48 =             DN(0,0)*N[1];
const double clhs49 =             C(0,0)*DN(2,0) + C(0,3)*DN(2,1) + C(0,5)*DN(2,2);
const double clhs50 =             C(0,3)*DN(2,0);
const double clhs51 =             C(3,3)*DN(2,1) + C(3,5)*DN(2,2) + clhs50;
const double clhs52 =             C(0,5)*DN(2,0);
const double clhs53 =             C(3,5)*DN(2,1) + C(5,5)*DN(2,2) + clhs52;
const double clhs54 =             N[2]*clhs31;
const double clhs55 =             DN(0,0)*DN(2,0);
const double clhs56 =             clhs10*clhs55 + clhs54;
const double clhs57 =             C(0,1)*DN(2,1) + C(0,4)*DN(2,2) + clhs50;
const double clhs58 =             C(1,3)*DN(2,1);
const double clhs59 =             C(3,3)*DN(2,0) + C(3,4)*DN(2,2) + clhs58;
const double clhs60 =             C(3,5)*DN(2,0);
const double clhs61 =             C(4,5)*DN(2,2);
const double clhs62 =             C(1,5)*DN(2,1) + clhs60 + clhs61;
const double clhs63 =             DN(2,1)*clhs17;
const double clhs64 =             C(0,2)*DN(2,2) + C(0,4)*DN(2,1) + clhs52;
const double clhs65 =             C(3,4)*DN(2,1);
const double clhs66 =             C(2,3)*DN(2,2) + clhs60 + clhs65;
const double clhs67 =             C(2,5)*DN(2,2);
const double clhs68 =             C(4,5)*DN(2,1) + C(5,5)*DN(2,0) + clhs67;
const double clhs69 =             DN(2,2)*clhs17;
const double clhs70 =             DN(0,0)*N[2];
const double clhs71 =             C(0,0)*DN(3,0) + C(0,3)*DN(3,1) + C(0,5)*DN(3,2);
const double clhs72 =             C(0,3)*DN(3,0);
const double clhs73 =             C(3,3)*DN(3,1) + C(3,5)*DN(3,2) + clhs72;
const double clhs74 =             C(0,5)*DN(3,0);
const double clhs75 =             C(3,5)*DN(3,1) + C(5,5)*DN(3,2) + clhs74;
const double clhs76 =             N[3]*clhs31;
const double clhs77 =             DN(0,0)*DN(3,0);
const double clhs78 =             clhs10*clhs77 + clhs76;
const double clhs79 =             C(0,1)*DN(3,1) + C(0,4)*DN(3,2) + clhs72;
const double clhs80 =             C(1,3)*DN(3,1);
const double clhs81 =             C(3,3)*DN(3,0) + C(3,4)*DN(3,2) + clhs80;
const double clhs82 =             C(3,5)*DN(3,0);
const double clhs83 =             C(4,5)*DN(3,2);
const double clhs84 =             C(1,5)*DN(3,1) + clhs82 + clhs83;
const double clhs85 =             DN(3,1)*clhs17;
const double clhs86 =             C(0,2)*DN(3,2) + C(0,4)*DN(3,1) + clhs74;
const double clhs87 =             C(3,4)*DN(3,1);
const double clhs88 =             C(2,3)*DN(3,2) + clhs82 + clhs87;
const double clhs89 =             C(2,5)*DN(3,2);
const double clhs90 =             C(4,5)*DN(3,1) + C(5,5)*DN(3,0) + clhs89;
const double clhs91 =             DN(3,2)*clhs17;
const double clhs92 =             DN(0,0)*N[3];
const double clhs93 =             C(0,0)*DN(4,0) + C(0,3)*DN(4,1) + C(0,5)*DN(4,2);
const double clhs94 =             C(0,3)*DN(4,0);
const double clhs95 =             C(3,3)*DN(4,1) + C(3,5)*DN(4,2) + clhs94;
const double clhs96 =             C(0,5)*DN(4,0);
const double clhs97 =             C(3,5)*DN(4,1) + C(5,5)*DN(4,2) + clhs96;
const double clhs98 =             N[4]*clhs31;
const double clhs99 =             DN(0,0)*DN(4,0);
const double clhs100 =             clhs10*clhs99 + clhs98;
const double clhs101 =             C(0,1)*DN(4,1) + C(0,4)*DN(4,2) + clhs94;
const double clhs102 =             C(1,3)*DN(4,1);
const double clhs103 =             C(3,3)*DN(4,0) + C(3,4)*DN(4,2) + clhs102;
const double clhs104 =             C(3,5)*DN(4,0);
const double clhs105 =             C(4,5)*DN(4,2);
const double clhs106 =             C(1,5)*DN(4,1) + clhs104 + clhs105;
const double clhs107 =             DN(4,1)*clhs17;
const double clhs108 =             C(0,2)*DN(4,2) + C(0,4)*DN(4,1) + clhs96;
const double clhs109 =             C(3,4)*DN(4,1);
const double clhs110 =             C(2,3)*DN(4,2) + clhs104 + clhs109;
const double clhs111 =             C(2,5)*DN(4,2);
const double clhs112 =             C(4,5)*DN(4,1) + C(5,5)*DN(4,0) + clhs111;
const double clhs113 =             DN(4,2)*clhs17;
const double clhs114 =             DN(0,0)*N[4];
const double clhs115 =             C(0,0)*DN(5,0) + C(0,3)*DN(5,1) + C(0,5)*DN(5,2);
const double clhs116 =             C(0,3)*DN(5,0);
const double clhs117 =             C(3,3)*DN(5,1) + C(3,5)*DN(5,2) + clhs116;
const double clhs118 =             C(0,5)*DN(5,0);
const double clhs119 =             C(3,5)*DN(5,1) + C(5,5)*DN(5,2) + clhs118;
const double clhs120 =             N[5]*clhs31;
const double clhs121 =             DN(0,0)*DN(5,0);
const double clhs122 =             clhs10*clhs121 + clhs120;
const double clhs123 =             C(0,1)*DN(5,1) + C(0,4)*DN(5,2) + clhs116;
const double clhs124 =             C(1,3)*DN(5,1);
const double clhs125 =             C(3,3)*DN(5,0) + C(3,4)*DN(5,2) + clhs124;
const double clhs126 =             C(3,5)*DN(5,0);
const double clhs127 =             C(4,5)*DN(5,2);
const double clhs128 =             C(1,5)*DN(5,1) + clhs126 + clhs127;
const double clhs129 =             DN(5,1)*clhs17;
const double clhs130 =             C(0,2)*DN(5,2) + C(0,4)*DN(5,1) + clhs118;
const double clhs131 =             C(3,4)*DN(5,1);
const double clhs132 =             C(2,3)*DN(5,2) + clhs126 + clhs131;
const double clhs133 =             C(2,5)*DN(5,2);
const double clhs134 =             C(4,5)*DN(5,1) + C(5,5)*DN(5,0) + clhs133;
const double clhs135 =             DN(5,2)*clhs17;
const double clhs136 =             DN(0,0)*N[5];
const double clhs137 =             C(0,0)*DN(6,0) + C(0,3)*DN(6,1) + C(0,5)*DN(6,2);
const double clhs138 =             C(0,3)*DN(6,0);
const double clhs139 =             C(3,3)*DN(6,1) + C(3,5)*DN(6,2) + clhs138;
const double clhs140 =             C(0,5)*DN(6,0);
const double clhs141 =             C(3,5)*DN(6,1) + C(5,5)*DN(6,2) + clhs140;
const double clhs142 =             N[6]*clhs31;
const double clhs143 =             DN(0,0)*DN(6,0);
const double clhs144 =             clhs10*clhs143 + clhs142;
const double clhs145 =             C(0,1)*DN(6,1) + C(0,4)*DN(6,2) + clhs138;
const double clhs146 =             C(1,3)*DN(6,1);
const double clhs147 =             C(3,3)*DN(6,0) + C(3,4)*DN(6,2) + clhs146;
const double clhs148 =             C(3,5)*DN(6,0);
const double clhs149 =             C(4,5)*DN(6,2);
const double clhs150 =             C(1,5)*DN(6,1) + clhs148 + clhs149;
const double clhs151 =             DN(6,1)*clhs17;
const double clhs152 =             C(0,2)*DN(6,2) + C(0,4)*DN(6,1) + clhs140;
const double clhs153 =             C(3,4)*DN(6,1);
const double clhs154 =             C(2,3)*DN(6,2) + clhs148 + clhs153;
const double clhs155 =             C(2,5)*DN(6,2);
const double clhs156 =             C(4,5)*DN(6,1) + C(5,5)*DN(6,0) + clhs155;
const double clhs157 =             DN(6,2)*clhs17;
const double clhs158 =             DN(0,0)*N[6];
const double clhs159 =             C(0,0)*DN(7,0) + C(0,3)*DN(7,1) + C(0,5)*DN(7,2);
const double clhs160 =             C(0,3)*DN(7,0);
const double clhs161 =             C(3,3)*DN(7,1) + C(3,5)*DN(7,2) + clhs160;
const double clhs162 =             C(0,5)*DN(7,0);
const double clhs163 =             C(3,5)*DN(7,1) + C(5,5)*DN(7,2) + clhs162;
const double clhs164 =             N[7]*clhs31;
const double clhs165 =             DN(0,0)*DN(7,0);
const double clhs166 =             clhs10*clhs165 + clhs164;
const double clhs167 =             C(0,1)*DN(7,1) + C(0,4)*DN(7,2) + clhs160;
const double clhs168 =             C(1,3)*DN(7,1);
const double clhs169 =             C(3,3)*DN(7,0) + C(3,4)*DN(7,2) + clhs168;
const double clhs170 =             C(3,5)*DN(7,0);
const double clhs171 =             C(4,5)*DN(7,2);
const double clhs172 =             C(1,5)*DN(7,1) + clhs170 + clhs171;
const double clhs173 =             DN(7,1)*clhs17;
const double clhs174 =             C(0,2)*DN(7,2) + C(0,4)*DN(7,1) + clhs162;
const double clhs175 =             C(3,4)*DN(7,1);
const double clhs176 =             C(2,3)*DN(7,2) + clhs170 + clhs175;
const double clhs177 =             C(2,5)*DN(7,2);
const double clhs178 =             C(4,5)*DN(7,1) + C(5,5)*DN(7,0) + clhs177;
const double clhs179 =             DN(7,2)*clhs17;
const double clhs180 =             DN(0,0)*N[7];
const double clhs181 =             C(0,1)*DN(0,0) + C(1,5)*DN(0,2) + clhs12;
const double clhs182 =             C(0,4)*DN(0,0) + clhs15 + clhs20;
const double clhs183 =             C(1,1)*DN(0,1) + C(1,3)*DN(0,0) + C(1,4)*DN(0,2);
const double clhs184 =             C(1,4)*DN(0,1);
const double clhs185 =             C(3,4)*DN(0,0) + C(4,4)*DN(0,2) + clhs184;
const double clhs186 =             pow(DN(0,1), 2);
const double clhs187 =             C(1,2)*DN(0,2) + C(1,5)*DN(0,0) + clhs184;
const double clhs188 =             C(2,4)*DN(0,2);
const double clhs189 =             C(4,4)*DN(0,1) + C(4,5)*DN(0,0) + clhs188;
const double clhs190 =             DN(0,1)*clhs10;
const double clhs191 =             DN(0,2)*clhs190;
const double clhs192 =             DN(0,1)*N[0];
const double clhs193 =             C(0,1)*DN(1,0) + C(1,5)*DN(1,2) + clhs36;
const double clhs194 =             C(0,4)*DN(1,0) + clhs39 + clhs43;
const double clhs195 =             DN(1,0)*clhs190;
const double clhs196 =             C(1,1)*DN(1,1) + C(1,3)*DN(1,0) + C(1,4)*DN(1,2);
const double clhs197 =             C(1,4)*DN(1,1);
const double clhs198 =             C(3,4)*DN(1,0) + C(4,4)*DN(1,2) + clhs197;
const double clhs199 =             DN(0,1)*DN(1,1);
const double clhs200 =             clhs10*clhs199 + clhs32;
const double clhs201 =             C(1,2)*DN(1,2) + C(1,5)*DN(1,0) + clhs197;
const double clhs202 =             C(2,4)*DN(1,2);
const double clhs203 =             C(4,4)*DN(1,1) + C(4,5)*DN(1,0) + clhs202;
const double clhs204 =             DN(1,2)*clhs190;
const double clhs205 =             DN(0,1)*N[1];
const double clhs206 =             C(0,1)*DN(2,0) + C(1,5)*DN(2,2) + clhs58;
const double clhs207 =             C(0,4)*DN(2,0) + clhs61 + clhs65;
const double clhs208 =             DN(2,0)*clhs190;
const double clhs209 =             C(1,1)*DN(2,1) + C(1,3)*DN(2,0) + C(1,4)*DN(2,2);
const double clhs210 =             C(1,4)*DN(2,1);
const double clhs211 =             C(3,4)*DN(2,0) + C(4,4)*DN(2,2) + clhs210;
const double clhs212 =             DN(0,1)*DN(2,1);
const double clhs213 =             clhs10*clhs212 + clhs54;
const double clhs214 =             C(1,2)*DN(2,2) + C(1,5)*DN(2,0) + clhs210;
const double clhs215 =             C(2,4)*DN(2,2);
const double clhs216 =             C(4,4)*DN(2,1) + C(4,5)*DN(2,0) + clhs215;
const double clhs217 =             DN(2,2)*clhs190;
const double clhs218 =             DN(0,1)*N[2];
const double clhs219 =             C(0,1)*DN(3,0) + C(1,5)*DN(3,2) + clhs80;
const double clhs220 =             C(0,4)*DN(3,0) + clhs83 + clhs87;
const double clhs221 =             DN(3,0)*clhs190;
const double clhs222 =             C(1,1)*DN(3,1) + C(1,3)*DN(3,0) + C(1,4)*DN(3,2);
const double clhs223 =             C(1,4)*DN(3,1);
const double clhs224 =             C(3,4)*DN(3,0) + C(4,4)*DN(3,2) + clhs223;
const double clhs225 =             DN(0,1)*DN(3,1);
const double clhs226 =             clhs10*clhs225 + clhs76;
const double clhs227 =             C(1,2)*DN(3,2) + C(1,5)*DN(3,0) + clhs223;
const double clhs228 =             C(2,4)*DN(3,2);
const double clhs229 =             C(4,4)*DN(3,1) + C(4,5)*DN(3,0) + clhs228;
const double clhs230 =             DN(3,2)*clhs190;
const double clhs231 =             DN(0,1)*N[3];
const double clhs232 =             C(0,1)*DN(4,0) + C(1,5)*DN(4,2) + clhs102;
const double clhs233 =             C(0,4)*DN(4,0) + clhs105 + clhs109;
const double clhs234 =             DN(4,0)*clhs190;
const double clhs235 =             C(1,1)*DN(4,1) + C(1,3)*DN(4,0) + C(1,4)*DN(4,2);
const double clhs236 =             C(1,4)*DN(4,1);
const double clhs237 =             C(3,4)*DN(4,0) + C(4,4)*DN(4,2) + clhs236;
const double clhs238 =             DN(0,1)*DN(4,1);
const double clhs239 =             clhs10*clhs238 + clhs98;
const double clhs240 =             C(1,2)*DN(4,2) + C(1,5)*DN(4,0) + clhs236;
const double clhs241 =             C(2,4)*DN(4,2);
const double clhs242 =             C(4,4)*DN(4,1) + C(4,5)*DN(4,0) + clhs241;
const double clhs243 =             DN(4,2)*clhs190;
const double clhs244 =             DN(0,1)*N[4];
const double clhs245 =             C(0,1)*DN(5,0) + C(1,5)*DN(5,2) + clhs124;
const double clhs246 =             C(0,4)*DN(5,0) + clhs127 + clhs131;
const double clhs247 =             DN(5,0)*clhs190;
const double clhs248 =             C(1,1)*DN(5,1) + C(1,3)*DN(5,0) + C(1,4)*DN(5,2);
const double clhs249 =             C(1,4)*DN(5,1);
const double clhs250 =             C(3,4)*DN(5,0) + C(4,4)*DN(5,2) + clhs249;
const double clhs251 =             DN(0,1)*DN(5,1);
const double clhs252 =             clhs10*clhs251 + clhs120;
const double clhs253 =             C(1,2)*DN(5,2) + C(1,5)*DN(5,0) + clhs249;
const double clhs254 =             C(2,4)*DN(5,2);
const double clhs255 =             C(4,4)*DN(5,1) + C(4,5)*DN(5,0) + clhs254;
const double clhs256 =             DN(5,2)*clhs190;
const double clhs257 =             DN(0,1)*N[5];
const double clhs258 =             C(0,1)*DN(6,0) + C(1,5)*DN(6,2) + clhs146;
const double clhs259 =             C(0,4)*DN(6,0) + clhs149 + clhs153;
const double clhs260 =             DN(6,0)*clhs190;
const double clhs261 =             C(1,1)*DN(6,1) + C(1,3)*DN(6,0) + C(1,4)*DN(6,2);
const double clhs262 =             C(1,4)*DN(6,1);
const double clhs263 =             C(3,4)*DN(6,0) + C(4,4)*DN(6,2) + clhs262;
const double clhs264 =             DN(0,1)*DN(6,1);
const double clhs265 =             clhs10*clhs264 + clhs142;
const double clhs266 =             C(1,2)*DN(6,2) + C(1,5)*DN(6,0) + clhs262;
const double clhs267 =             C(2,4)*DN(6,2);
const double clhs268 =             C(4,4)*DN(6,1) + C(4,5)*DN(6,0) + clhs267;
const double clhs269 =             DN(6,2)*clhs190;
const double clhs270 =             DN(0,1)*N[6];
const double clhs271 =             C(0,1)*DN(7,0) + C(1,5)*DN(7,2) + clhs168;
const double clhs272 =             C(0,4)*DN(7,0) + clhs171 + clhs175;
const double clhs273 =             DN(7,0)*clhs190;
const double clhs274 =             C(1,1)*DN(7,1) + C(1,3)*DN(7,0) + C(1,4)*DN(7,2);
const double clhs275 =             C(1,4)*DN(7,1);
const double clhs276 =             C(3,4)*DN(7,0) + C(4,4)*DN(7,2) + clhs275;
const double clhs277 =             DN(0,1)*DN(7,1);
const double clhs278 =             clhs10*clhs277 + clhs164;
const double clhs279 =             C(1,2)*DN(7,2) + C(1,5)*DN(7,0) + clhs275;
const double clhs280 =             C(2,4)*DN(7,2);
const double clhs281 =             C(4,4)*DN(7,1) + C(4,5)*DN(7,0) + clhs280;
const double clhs282 =             DN(7,2)*clhs190;
const double clhs283 =             DN(0,1)*N[7];
const double clhs284 =             C(0,2)*DN(0,0) + C(2,3)*DN(0,1) + clhs22;
const double clhs285 =             C(1,2)*DN(0,1) + C(2,3)*DN(0,0) + clhs188;
const double clhs286 =             C(2,2)*DN(0,2) + C(2,4)*DN(0,1) + C(2,5)*DN(0,0);
const double clhs287 =             pow(DN(0,2), 2);
const double clhs288 =             DN(0,2)*N[0];
const double clhs289 =             C(0,2)*DN(1,0) + C(2,3)*DN(1,1) + clhs45;
const double clhs290 =             DN(0,2)*clhs10;
const double clhs291 =             DN(1,0)*clhs290;
const double clhs292 =             C(1,2)*DN(1,1) + C(2,3)*DN(1,0) + clhs202;
const double clhs293 =             DN(1,1)*clhs290;
const double clhs294 =             C(2,2)*DN(1,2) + C(2,4)*DN(1,1) + C(2,5)*DN(1,0);
const double clhs295 =             DN(0,2)*DN(1,2);
const double clhs296 =             clhs10*clhs295 + clhs32;
const double clhs297 =             DN(0,2)*N[1];
const double clhs298 =             C(0,2)*DN(2,0) + C(2,3)*DN(2,1) + clhs67;
const double clhs299 =             DN(2,0)*clhs290;
const double clhs300 =             C(1,2)*DN(2,1) + C(2,3)*DN(2,0) + clhs215;
const double clhs301 =             DN(2,1)*clhs290;
const double clhs302 =             C(2,2)*DN(2,2) + C(2,4)*DN(2,1) + C(2,5)*DN(2,0);
const double clhs303 =             DN(0,2)*DN(2,2);
const double clhs304 =             clhs10*clhs303 + clhs54;
const double clhs305 =             DN(0,2)*N[2];
const double clhs306 =             C(0,2)*DN(3,0) + C(2,3)*DN(3,1) + clhs89;
const double clhs307 =             DN(3,0)*clhs290;
const double clhs308 =             C(1,2)*DN(3,1) + C(2,3)*DN(3,0) + clhs228;
const double clhs309 =             DN(3,1)*clhs290;
const double clhs310 =             C(2,2)*DN(3,2) + C(2,4)*DN(3,1) + C(2,5)*DN(3,0);
const double clhs311 =             DN(0,2)*DN(3,2);
const double clhs312 =             clhs10*clhs311 + clhs76;
const double clhs313 =             DN(0,2)*N[3];
const double clhs314 =             C(0,2)*DN(4,0) + C(2,3)*DN(4,1) + clhs111;
const double clhs315 =             DN(4,0)*clhs290;
const double clhs316 =             C(1,2)*DN(4,1) + C(2,3)*DN(4,0) + clhs241;
const double clhs317 =             DN(4,1)*clhs290;
const double clhs318 =             C(2,2)*DN(4,2) + C(2,4)*DN(4,1) + C(2,5)*DN(4,0);
const double clhs319 =             DN(0,2)*DN(4,2);
const double clhs320 =             clhs10*clhs319 + clhs98;
const double clhs321 =             DN(0,2)*N[4];
const double clhs322 =             C(0,2)*DN(5,0) + C(2,3)*DN(5,1) + clhs133;
const double clhs323 =             DN(5,0)*clhs290;
const double clhs324 =             C(1,2)*DN(5,1) + C(2,3)*DN(5,0) + clhs254;
const double clhs325 =             DN(5,1)*clhs290;
const double clhs326 =             C(2,2)*DN(5,2) + C(2,4)*DN(5,1) + C(2,5)*DN(5,0);
const double clhs327 =             DN(0,2)*DN(5,2);
const double clhs328 =             clhs10*clhs327 + clhs120;
const double clhs329 =             DN(0,2)*N[5];
const double clhs330 =             C(0,2)*DN(6,0) + C(2,3)*DN(6,1) + clhs155;
const double clhs331 =             DN(6,0)*clhs290;
const double clhs332 =             C(1,2)*DN(6,1) + C(2,3)*DN(6,0) + clhs267;
const double clhs333 =             DN(6,1)*clhs290;
const double clhs334 =             C(2,2)*DN(6,2) + C(2,4)*DN(6,1) + C(2,5)*DN(6,0);
const double clhs335 =             DN(0,2)*DN(6,2);
const double clhs336 =             clhs10*clhs335 + clhs142;
const double clhs337 =             DN(0,2)*N[6];
const double clhs338 =             C(0,2)*DN(7,0) + C(2,3)*DN(7,1) + clhs177;
const double clhs339 =             DN(7,0)*clhs290;
const double clhs340 =             C(1,2)*DN(7,1) + C(2,3)*DN(7,0) + clhs280;
const double clhs341 =             DN(7,1)*clhs290;
const double clhs342 =             C(2,2)*DN(7,2) + C(2,4)*DN(7,1) + C(2,5)*DN(7,0);
const double clhs343 =             DN(0,2)*DN(7,2);
const double clhs344 =             clhs10*clhs343 + clhs164;
const double clhs345 =             DN(0,2)*N[7];
const double clhs346 =             1.0/clhs9;
const double clhs347 =             clhs0*clhs346;
const double clhs348 =             clhs347 + 1;
const double clhs349 =             DN(1,0)*N[0];
const double clhs350 =             DN(1,1)*N[0];
const double clhs351 =             DN(1,2)*N[0];
const double clhs352 =             clhs346*(clhs199 + clhs295 + clhs33);
const double clhs353 =             DN(2,0)*N[0];
const double clhs354 =             DN(2,1)*N[0];
const double clhs355 =             DN(2,2)*N[0];
const double clhs356 =             clhs346*(clhs212 + clhs303 + clhs55);
const double clhs357 =             DN(3,0)*N[0];
const double clhs358 =             DN(3,1)*N[0];
const double clhs359 =             DN(3,2)*N[0];
const double clhs360 =             clhs346*(clhs225 + clhs311 + clhs77);
const double clhs361 =             DN(4,0)*N[0];
const double clhs362 =             DN(4,1)*N[0];
const double clhs363 =             DN(4,2)*N[0];
const double clhs364 =             clhs346*(clhs238 + clhs319 + clhs99);
const double clhs365 =             DN(5,0)*N[0];
const double clhs366 =             DN(5,1)*N[0];
const double clhs367 =             DN(5,2)*N[0];
const double clhs368 =             clhs346*(clhs121 + clhs251 + clhs327);
const double clhs369 =             DN(6,0)*N[0];
const double clhs370 =             DN(6,1)*N[0];
const double clhs371 =             DN(6,2)*N[0];
const double clhs372 =             clhs346*(clhs143 + clhs264 + clhs335);
const double clhs373 =             DN(7,0)*N[0];
const double clhs374 =             DN(7,1)*N[0];
const double clhs375 =             DN(7,2)*N[0];
const double clhs376 =             clhs346*(clhs165 + clhs277 + clhs343);
const double clhs377 =             pow(N[1], 2)*clhs0;
const double clhs378 =             pow(DN(1,0), 2);
const double clhs379 =             DN(1,0)*clhs10;
const double clhs380 =             DN(1,1)*clhs379;
const double clhs381 =             DN(1,2)*clhs379;
const double clhs382 =             DN(1,0)*N[1];
const double clhs383 =             N[1]*clhs0;
const double clhs384 =             N[2]*clhs383;
const double clhs385 =             DN(1,0)*DN(2,0);
const double clhs386 =             clhs10*clhs385 + clhs384;
const double clhs387 =             DN(2,1)*clhs379;
const double clhs388 =             DN(2,2)*clhs379;
const double clhs389 =             DN(1,0)*N[2];
const double clhs390 =             N[3]*clhs383;
const double clhs391 =             DN(1,0)*DN(3,0);
const double clhs392 =             clhs10*clhs391 + clhs390;
const double clhs393 =             DN(3,1)*clhs379;
const double clhs394 =             DN(3,2)*clhs379;
const double clhs395 =             DN(1,0)*N[3];
const double clhs396 =             N[4]*clhs383;
const double clhs397 =             DN(1,0)*DN(4,0);
const double clhs398 =             clhs10*clhs397 + clhs396;
const double clhs399 =             DN(4,1)*clhs379;
const double clhs400 =             DN(4,2)*clhs379;
const double clhs401 =             DN(1,0)*N[4];
const double clhs402 =             N[5]*clhs383;
const double clhs403 =             DN(1,0)*DN(5,0);
const double clhs404 =             clhs10*clhs403 + clhs402;
const double clhs405 =             DN(5,1)*clhs379;
const double clhs406 =             DN(5,2)*clhs379;
const double clhs407 =             DN(1,0)*N[5];
const double clhs408 =             N[6]*clhs383;
const double clhs409 =             DN(1,0)*DN(6,0);
const double clhs410 =             clhs10*clhs409 + clhs408;
const double clhs411 =             DN(6,1)*clhs379;
const double clhs412 =             DN(6,2)*clhs379;
const double clhs413 =             DN(1,0)*N[6];
const double clhs414 =             N[7]*clhs383;
const double clhs415 =             DN(1,0)*DN(7,0);
const double clhs416 =             clhs10*clhs415 + clhs414;
const double clhs417 =             DN(7,1)*clhs379;
const double clhs418 =             DN(7,2)*clhs379;
const double clhs419 =             DN(1,0)*N[7];
const double clhs420 =             pow(DN(1,1), 2);
const double clhs421 =             DN(1,1)*clhs10;
const double clhs422 =             DN(1,2)*clhs421;
const double clhs423 =             DN(1,1)*N[1];
const double clhs424 =             DN(2,0)*clhs421;
const double clhs425 =             DN(1,1)*DN(2,1);
const double clhs426 =             clhs10*clhs425 + clhs384;
const double clhs427 =             DN(2,2)*clhs421;
const double clhs428 =             DN(1,1)*N[2];
const double clhs429 =             DN(3,0)*clhs421;
const double clhs430 =             DN(1,1)*DN(3,1);
const double clhs431 =             clhs10*clhs430 + clhs390;
const double clhs432 =             DN(3,2)*clhs421;
const double clhs433 =             DN(1,1)*N[3];
const double clhs434 =             DN(4,0)*clhs421;
const double clhs435 =             DN(1,1)*DN(4,1);
const double clhs436 =             clhs10*clhs435 + clhs396;
const double clhs437 =             DN(4,2)*clhs421;
const double clhs438 =             DN(1,1)*N[4];
const double clhs439 =             DN(5,0)*clhs421;
const double clhs440 =             DN(1,1)*DN(5,1);
const double clhs441 =             clhs10*clhs440 + clhs402;
const double clhs442 =             DN(5,2)*clhs421;
const double clhs443 =             DN(1,1)*N[5];
const double clhs444 =             DN(6,0)*clhs421;
const double clhs445 =             DN(1,1)*DN(6,1);
const double clhs446 =             clhs10*clhs445 + clhs408;
const double clhs447 =             DN(6,2)*clhs421;
const double clhs448 =             DN(1,1)*N[6];
const double clhs449 =             DN(7,0)*clhs421;
const double clhs450 =             DN(1,1)*DN(7,1);
const double clhs451 =             clhs10*clhs450 + clhs414;
const double clhs452 =             DN(7,2)*clhs421;
const double clhs453 =             DN(1,1)*N[7];
const double clhs454 =             pow(DN(1,2), 2);
const double clhs455 =             DN(1,2)*N[1];
const double clhs456 =             DN(1,2)*clhs10;
const double clhs457 =             DN(2,0)*clhs456;
const double clhs458 =             DN(2,1)*clhs456;
const double clhs459 =             DN(1,2)*DN(2,2);
const double clhs460 =             clhs10*clhs459 + clhs384;
const double clhs461 =             DN(1,2)*N[2];
const double clhs462 =             DN(3,0)*clhs456;
const double clhs463 =             DN(3,1)*clhs456;
const double clhs464 =             DN(1,2)*DN(3,2);
const double clhs465 =             clhs10*clhs464 + clhs390;
const double clhs466 =             DN(1,2)*N[3];
const double clhs467 =             DN(4,0)*clhs456;
const double clhs468 =             DN(4,1)*clhs456;
const double clhs469 =             DN(1,2)*DN(4,2);
const double clhs470 =             clhs10*clhs469 + clhs396;
const double clhs471 =             DN(1,2)*N[4];
const double clhs472 =             DN(5,0)*clhs456;
const double clhs473 =             DN(5,1)*clhs456;
const double clhs474 =             DN(1,2)*DN(5,2);
const double clhs475 =             clhs10*clhs474 + clhs402;
const double clhs476 =             DN(1,2)*N[5];
const double clhs477 =             DN(6,0)*clhs456;
const double clhs478 =             DN(6,1)*clhs456;
const double clhs479 =             DN(1,2)*DN(6,2);
const double clhs480 =             clhs10*clhs479 + clhs408;
const double clhs481 =             DN(1,2)*N[6];
const double clhs482 =             DN(7,0)*clhs456;
const double clhs483 =             DN(7,1)*clhs456;
const double clhs484 =             DN(1,2)*DN(7,2);
const double clhs485 =             clhs10*clhs484 + clhs414;
const double clhs486 =             DN(1,2)*N[7];
const double clhs487 =             DN(2,0)*N[1];
const double clhs488 =             DN(2,1)*N[1];
const double clhs489 =             DN(2,2)*N[1];
const double clhs490 =             clhs346*(clhs385 + clhs425 + clhs459);
const double clhs491 =             DN(3,0)*N[1];
const double clhs492 =             DN(3,1)*N[1];
const double clhs493 =             DN(3,2)*N[1];
const double clhs494 =             clhs346*(clhs391 + clhs430 + clhs464);
const double clhs495 =             DN(4,0)*N[1];
const double clhs496 =             DN(4,1)*N[1];
const double clhs497 =             DN(4,2)*N[1];
const double clhs498 =             clhs346*(clhs397 + clhs435 + clhs469);
const double clhs499 =             DN(5,0)*N[1];
const double clhs500 =             DN(5,1)*N[1];
const double clhs501 =             DN(5,2)*N[1];
const double clhs502 =             clhs346*(clhs403 + clhs440 + clhs474);
const double clhs503 =             DN(6,0)*N[1];
const double clhs504 =             DN(6,1)*N[1];
const double clhs505 =             DN(6,2)*N[1];
const double clhs506 =             clhs346*(clhs409 + clhs445 + clhs479);
const double clhs507 =             DN(7,0)*N[1];
const double clhs508 =             DN(7,1)*N[1];
const double clhs509 =             DN(7,2)*N[1];
const double clhs510 =             clhs346*(clhs415 + clhs450 + clhs484);
const double clhs511 =             pow(N[2], 2)*clhs0;
const double clhs512 =             pow(DN(2,0), 2);
const double clhs513 =             DN(2,0)*clhs10;
const double clhs514 =             DN(2,1)*clhs513;
const double clhs515 =             DN(2,2)*clhs513;
const double clhs516 =             DN(2,0)*N[2];
const double clhs517 =             N[2]*clhs0;
const double clhs518 =             N[3]*clhs517;
const double clhs519 =             DN(2,0)*DN(3,0);
const double clhs520 =             clhs10*clhs519 + clhs518;
const double clhs521 =             DN(3,1)*clhs513;
const double clhs522 =             DN(3,2)*clhs513;
const double clhs523 =             DN(2,0)*N[3];
const double clhs524 =             N[4]*clhs517;
const double clhs525 =             DN(2,0)*DN(4,0);
const double clhs526 =             clhs10*clhs525 + clhs524;
const double clhs527 =             DN(4,1)*clhs513;
const double clhs528 =             DN(4,2)*clhs513;
const double clhs529 =             DN(2,0)*N[4];
const double clhs530 =             N[5]*clhs517;
const double clhs531 =             DN(2,0)*DN(5,0);
const double clhs532 =             clhs10*clhs531 + clhs530;
const double clhs533 =             DN(5,1)*clhs513;
const double clhs534 =             DN(5,2)*clhs513;
const double clhs535 =             DN(2,0)*N[5];
const double clhs536 =             N[6]*clhs517;
const double clhs537 =             DN(2,0)*DN(6,0);
const double clhs538 =             clhs10*clhs537 + clhs536;
const double clhs539 =             DN(6,1)*clhs513;
const double clhs540 =             DN(6,2)*clhs513;
const double clhs541 =             DN(2,0)*N[6];
const double clhs542 =             N[7]*clhs517;
const double clhs543 =             DN(2,0)*DN(7,0);
const double clhs544 =             clhs10*clhs543 + clhs542;
const double clhs545 =             DN(7,1)*clhs513;
const double clhs546 =             DN(7,2)*clhs513;
const double clhs547 =             DN(2,0)*N[7];
const double clhs548 =             pow(DN(2,1), 2);
const double clhs549 =             DN(2,1)*clhs10;
const double clhs550 =             DN(2,2)*clhs549;
const double clhs551 =             DN(2,1)*N[2];
const double clhs552 =             DN(3,0)*clhs549;
const double clhs553 =             DN(2,1)*DN(3,1);
const double clhs554 =             clhs10*clhs553 + clhs518;
const double clhs555 =             DN(3,2)*clhs549;
const double clhs556 =             DN(2,1)*N[3];
const double clhs557 =             DN(4,0)*clhs549;
const double clhs558 =             DN(2,1)*DN(4,1);
const double clhs559 =             clhs10*clhs558 + clhs524;
const double clhs560 =             DN(4,2)*clhs549;
const double clhs561 =             DN(2,1)*N[4];
const double clhs562 =             DN(5,0)*clhs549;
const double clhs563 =             DN(2,1)*DN(5,1);
const double clhs564 =             clhs10*clhs563 + clhs530;
const double clhs565 =             DN(5,2)*clhs549;
const double clhs566 =             DN(2,1)*N[5];
const double clhs567 =             DN(6,0)*clhs549;
const double clhs568 =             DN(2,1)*DN(6,1);
const double clhs569 =             clhs10*clhs568 + clhs536;
const double clhs570 =             DN(6,2)*clhs549;
const double clhs571 =             DN(2,1)*N[6];
const double clhs572 =             DN(7,0)*clhs549;
const double clhs573 =             DN(2,1)*DN(7,1);
const double clhs574 =             clhs10*clhs573 + clhs542;
const double clhs575 =             DN(7,2)*clhs549;
const double clhs576 =             DN(2,1)*N[7];
const double clhs577 =             pow(DN(2,2), 2);
const double clhs578 =             DN(2,2)*N[2];
const double clhs579 =             DN(2,2)*clhs10;
const double clhs580 =             DN(3,0)*clhs579;
const double clhs581 =             DN(3,1)*clhs579;
const double clhs582 =             DN(2,2)*DN(3,2);
const double clhs583 =             clhs10*clhs582 + clhs518;
const double clhs584 =             DN(2,2)*N[3];
const double clhs585 =             DN(4,0)*clhs579;
const double clhs586 =             DN(4,1)*clhs579;
const double clhs587 =             DN(2,2)*DN(4,2);
const double clhs588 =             clhs10*clhs587 + clhs524;
const double clhs589 =             DN(2,2)*N[4];
const double clhs590 =             DN(5,0)*clhs579;
const double clhs591 =             DN(5,1)*clhs579;
const double clhs592 =             DN(2,2)*DN(5,2);
const double clhs593 =             clhs10*clhs592 + clhs530;
const double clhs594 =             DN(2,2)*N[5];
const double clhs595 =             DN(6,0)*clhs579;
const double clhs596 =             DN(6,1)*clhs579;
const double clhs597 =             DN(2,2)*DN(6,2);
const double clhs598 =             clhs10*clhs597 + clhs536;
const double clhs599 =             DN(2,2)*N[6];
const double clhs600 =             DN(7,0)*clhs579;
const double clhs601 =             DN(7,1)*clhs579;
const double clhs602 =             DN(2,2)*DN(7,2);
const double clhs603 =             clhs10*clhs602 + clhs542;
const double clhs604 =             DN(2,2)*N[7];
const double clhs605 =             DN(3,0)*N[2];
const double clhs606 =             DN(3,1)*N[2];
const double clhs607 =             DN(3,2)*N[2];
const double clhs608 =             clhs346*(clhs519 + clhs553 + clhs582);
const double clhs609 =             DN(4,0)*N[2];
const double clhs610 =             DN(4,1)*N[2];
const double clhs611 =             DN(4,2)*N[2];
const double clhs612 =             clhs346*(clhs525 + clhs558 + clhs587);
const double clhs613 =             DN(5,0)*N[2];
const double clhs614 =             DN(5,1)*N[2];
const double clhs615 =             DN(5,2)*N[2];
const double clhs616 =             clhs346*(clhs531 + clhs563 + clhs592);
const double clhs617 =             DN(6,0)*N[2];
const double clhs618 =             DN(6,1)*N[2];
const double clhs619 =             DN(6,2)*N[2];
const double clhs620 =             clhs346*(clhs537 + clhs568 + clhs597);
const double clhs621 =             DN(7,0)*N[2];
const double clhs622 =             DN(7,1)*N[2];
const double clhs623 =             DN(7,2)*N[2];
const double clhs624 =             clhs346*(clhs543 + clhs573 + clhs602);
const double clhs625 =             pow(N[3], 2)*clhs0;
const double clhs626 =             pow(DN(3,0), 2);
const double clhs627 =             DN(3,0)*clhs10;
const double clhs628 =             DN(3,1)*clhs627;
const double clhs629 =             DN(3,2)*clhs627;
const double clhs630 =             DN(3,0)*N[3];
const double clhs631 =             N[3]*clhs0;
const double clhs632 =             N[4]*clhs631;
const double clhs633 =             DN(3,0)*DN(4,0);
const double clhs634 =             clhs10*clhs633 + clhs632;
const double clhs635 =             DN(4,1)*clhs627;
const double clhs636 =             DN(4,2)*clhs627;
const double clhs637 =             DN(3,0)*N[4];
const double clhs638 =             N[5]*clhs631;
const double clhs639 =             DN(3,0)*DN(5,0);
const double clhs640 =             clhs10*clhs639 + clhs638;
const double clhs641 =             DN(5,1)*clhs627;
const double clhs642 =             DN(5,2)*clhs627;
const double clhs643 =             DN(3,0)*N[5];
const double clhs644 =             N[6]*clhs631;
const double clhs645 =             DN(3,0)*DN(6,0);
const double clhs646 =             clhs10*clhs645 + clhs644;
const double clhs647 =             DN(6,1)*clhs627;
const double clhs648 =             DN(6,2)*clhs627;
const double clhs649 =             DN(3,0)*N[6];
const double clhs650 =             N[7]*clhs631;
const double clhs651 =             DN(3,0)*DN(7,0);
const double clhs652 =             clhs10*clhs651 + clhs650;
const double clhs653 =             DN(7,1)*clhs627;
const double clhs654 =             DN(7,2)*clhs627;
const double clhs655 =             DN(3,0)*N[7];
const double clhs656 =             pow(DN(3,1), 2);
const double clhs657 =             DN(3,1)*clhs10;
const double clhs658 =             DN(3,2)*clhs657;
const double clhs659 =             DN(3,1)*N[3];
const double clhs660 =             DN(4,0)*clhs657;
const double clhs661 =             DN(3,1)*DN(4,1);
const double clhs662 =             clhs10*clhs661 + clhs632;
const double clhs663 =             DN(4,2)*clhs657;
const double clhs664 =             DN(3,1)*N[4];
const double clhs665 =             DN(5,0)*clhs657;
const double clhs666 =             DN(3,1)*DN(5,1);
const double clhs667 =             clhs10*clhs666 + clhs638;
const double clhs668 =             DN(5,2)*clhs657;
const double clhs669 =             DN(3,1)*N[5];
const double clhs670 =             DN(6,0)*clhs657;
const double clhs671 =             DN(3,1)*DN(6,1);
const double clhs672 =             clhs10*clhs671 + clhs644;
const double clhs673 =             DN(6,2)*clhs657;
const double clhs674 =             DN(3,1)*N[6];
const double clhs675 =             DN(7,0)*clhs657;
const double clhs676 =             DN(3,1)*DN(7,1);
const double clhs677 =             clhs10*clhs676 + clhs650;
const double clhs678 =             DN(7,2)*clhs657;
const double clhs679 =             DN(3,1)*N[7];
const double clhs680 =             pow(DN(3,2), 2);
const double clhs681 =             DN(3,2)*N[3];
const double clhs682 =             DN(3,2)*clhs10;
const double clhs683 =             DN(4,0)*clhs682;
const double clhs684 =             DN(4,1)*clhs682;
const double clhs685 =             DN(3,2)*DN(4,2);
const double clhs686 =             clhs10*clhs685 + clhs632;
const double clhs687 =             DN(3,2)*N[4];
const double clhs688 =             DN(5,0)*clhs682;
const double clhs689 =             DN(5,1)*clhs682;
const double clhs690 =             DN(3,2)*DN(5,2);
const double clhs691 =             clhs10*clhs690 + clhs638;
const double clhs692 =             DN(3,2)*N[5];
const double clhs693 =             DN(6,0)*clhs682;
const double clhs694 =             DN(6,1)*clhs682;
const double clhs695 =             DN(3,2)*DN(6,2);
const double clhs696 =             clhs10*clhs695 + clhs644;
const double clhs697 =             DN(3,2)*N[6];
const double clhs698 =             DN(7,0)*clhs682;
const double clhs699 =             DN(7,1)*clhs682;
const double clhs700 =             DN(3,2)*DN(7,2);
const double clhs701 =             clhs10*clhs700 + clhs650;
const double clhs702 =             DN(3,2)*N[7];
const double clhs703 =             DN(4,0)*N[3];
const double clhs704 =             DN(4,1)*N[3];
const double clhs705 =             DN(4,2)*N[3];
const double clhs706 =             clhs346*(clhs633 + clhs661 + clhs685);
const double clhs707 =             DN(5,0)*N[3];
const double clhs708 =             DN(5,1)*N[3];
const double clhs709 =             DN(5,2)*N[3];
const double clhs710 =             clhs346*(clhs639 + clhs666 + clhs690);
const double clhs711 =             DN(6,0)*N[3];
const double clhs712 =             DN(6,1)*N[3];
const double clhs713 =             DN(6,2)*N[3];
const double clhs714 =             clhs346*(clhs645 + clhs671 + clhs695);
const double clhs715 =             DN(7,0)*N[3];
const double clhs716 =             DN(7,1)*N[3];
const double clhs717 =             DN(7,2)*N[3];
const double clhs718 =             clhs346*(clhs651 + clhs676 + clhs700);
const double clhs719 =             pow(N[4], 2)*clhs0;
const double clhs720 =             pow(DN(4,0), 2);
const double clhs721 =             DN(4,0)*clhs10;
const double clhs722 =             DN(4,1)*clhs721;
const double clhs723 =             DN(4,2)*clhs721;
const double clhs724 =             DN(4,0)*N[4];
const double clhs725 =             N[4]*clhs0;
const double clhs726 =             N[5]*clhs725;
const double clhs727 =             DN(4,0)*DN(5,0);
const double clhs728 =             clhs10*clhs727 + clhs726;
const double clhs729 =             DN(5,1)*clhs721;
const double clhs730 =             DN(5,2)*clhs721;
const double clhs731 =             DN(4,0)*N[5];
const double clhs732 =             N[6]*clhs725;
const double clhs733 =             DN(4,0)*DN(6,0);
const double clhs734 =             clhs10*clhs733 + clhs732;
const double clhs735 =             DN(6,1)*clhs721;
const double clhs736 =             DN(6,2)*clhs721;
const double clhs737 =             DN(4,0)*N[6];
const double clhs738 =             N[7]*clhs725;
const double clhs739 =             DN(4,0)*DN(7,0);
const double clhs740 =             clhs10*clhs739 + clhs738;
const double clhs741 =             DN(7,1)*clhs721;
const double clhs742 =             DN(7,2)*clhs721;
const double clhs743 =             DN(4,0)*N[7];
const double clhs744 =             pow(DN(4,1), 2);
const double clhs745 =             DN(4,1)*clhs10;
const double clhs746 =             DN(4,2)*clhs745;
const double clhs747 =             DN(4,1)*N[4];
const double clhs748 =             DN(5,0)*clhs745;
const double clhs749 =             DN(4,1)*DN(5,1);
const double clhs750 =             clhs10*clhs749 + clhs726;
const double clhs751 =             DN(5,2)*clhs745;
const double clhs752 =             DN(4,1)*N[5];
const double clhs753 =             DN(6,0)*clhs745;
const double clhs754 =             DN(4,1)*DN(6,1);
const double clhs755 =             clhs10*clhs754 + clhs732;
const double clhs756 =             DN(6,2)*clhs745;
const double clhs757 =             DN(4,1)*N[6];
const double clhs758 =             DN(7,0)*clhs745;
const double clhs759 =             DN(4,1)*DN(7,1);
const double clhs760 =             clhs10*clhs759 + clhs738;
const double clhs761 =             DN(7,2)*clhs745;
const double clhs762 =             DN(4,1)*N[7];
const double clhs763 =             pow(DN(4,2), 2);
const double clhs764 =             DN(4,2)*N[4];
const double clhs765 =             DN(4,2)*clhs10;
const double clhs766 =             DN(5,0)*clhs765;
const double clhs767 =             DN(5,1)*clhs765;
const double clhs768 =             DN(4,2)*DN(5,2);
const double clhs769 =             clhs10*clhs768 + clhs726;
const double clhs770 =             DN(4,2)*N[5];
const double clhs771 =             DN(6,0)*clhs765;
const double clhs772 =             DN(6,1)*clhs765;
const double clhs773 =             DN(4,2)*DN(6,2);
const double clhs774 =             clhs10*clhs773 + clhs732;
const double clhs775 =             DN(4,2)*N[6];
const double clhs776 =             DN(7,0)*clhs765;
const double clhs777 =             DN(7,1)*clhs765;
const double clhs778 =             DN(4,2)*DN(7,2);
const double clhs779 =             clhs10*clhs778 + clhs738;
const double clhs780 =             DN(4,2)*N[7];
const double clhs781 =             DN(5,0)*N[4];
const double clhs782 =             DN(5,1)*N[4];
const double clhs783 =             DN(5,2)*N[4];
const double clhs784 =             clhs346*(clhs727 + clhs749 + clhs768);
const double clhs785 =             DN(6,0)*N[4];
const double clhs786 =             DN(6,1)*N[4];
const double clhs787 =             DN(6,2)*N[4];
const double clhs788 =             clhs346*(clhs733 + clhs754 + clhs773);
const double clhs789 =             DN(7,0)*N[4];
const double clhs790 =             DN(7,1)*N[4];
const double clhs791 =             DN(7,2)*N[4];
const double clhs792 =             clhs346*(clhs739 + clhs759 + clhs778);
const double clhs793 =             pow(N[5], 2)*clhs0;
const double clhs794 =             pow(DN(5,0), 2);
const double clhs795 =             DN(5,0)*clhs10;
const double clhs796 =             DN(5,1)*clhs795;
const double clhs797 =             DN(5,2)*clhs795;
const double clhs798 =             DN(5,0)*N[5];
const double clhs799 =             N[5]*clhs0;
const double clhs800 =             N[6]*clhs799;
const double clhs801 =             DN(5,0)*DN(6,0);
const double clhs802 =             clhs10*clhs801 + clhs800;
const double clhs803 =             DN(6,1)*clhs795;
const double clhs804 =             DN(6,2)*clhs795;
const double clhs805 =             DN(5,0)*N[6];
const double clhs806 =             N[7]*clhs799;
const double clhs807 =             DN(5,0)*DN(7,0);
const double clhs808 =             clhs10*clhs807 + clhs806;
const double clhs809 =             DN(7,1)*clhs795;
const double clhs810 =             DN(7,2)*clhs795;
const double clhs811 =             DN(5,0)*N[7];
const double clhs812 =             pow(DN(5,1), 2);
const double clhs813 =             DN(5,1)*clhs10;
const double clhs814 =             DN(5,2)*clhs813;
const double clhs815 =             DN(5,1)*N[5];
const double clhs816 =             DN(6,0)*clhs813;
const double clhs817 =             DN(5,1)*DN(6,1);
const double clhs818 =             clhs10*clhs817 + clhs800;
const double clhs819 =             DN(6,2)*clhs813;
const double clhs820 =             DN(5,1)*N[6];
const double clhs821 =             DN(7,0)*clhs813;
const double clhs822 =             DN(5,1)*DN(7,1);
const double clhs823 =             clhs10*clhs822 + clhs806;
const double clhs824 =             DN(7,2)*clhs813;
const double clhs825 =             DN(5,1)*N[7];
const double clhs826 =             pow(DN(5,2), 2);
const double clhs827 =             DN(5,2)*N[5];
const double clhs828 =             DN(5,2)*clhs10;
const double clhs829 =             DN(6,0)*clhs828;
const double clhs830 =             DN(6,1)*clhs828;
const double clhs831 =             DN(5,2)*DN(6,2);
const double clhs832 =             clhs10*clhs831 + clhs800;
const double clhs833 =             DN(5,2)*N[6];
const double clhs834 =             DN(7,0)*clhs828;
const double clhs835 =             DN(7,1)*clhs828;
const double clhs836 =             DN(5,2)*DN(7,2);
const double clhs837 =             clhs10*clhs836 + clhs806;
const double clhs838 =             DN(5,2)*N[7];
const double clhs839 =             DN(6,0)*N[5];
const double clhs840 =             DN(6,1)*N[5];
const double clhs841 =             DN(6,2)*N[5];
const double clhs842 =             clhs346*(clhs801 + clhs817 + clhs831);
const double clhs843 =             DN(7,0)*N[5];
const double clhs844 =             DN(7,1)*N[5];
const double clhs845 =             DN(7,2)*N[5];
const double clhs846 =             clhs346*(clhs807 + clhs822 + clhs836);
const double clhs847 =             pow(N[6], 2)*clhs0;
const double clhs848 =             pow(DN(6,0), 2);
const double clhs849 =             DN(6,0)*clhs10;
const double clhs850 =             DN(6,1)*clhs849;
const double clhs851 =             DN(6,2)*clhs849;
const double clhs852 =             DN(6,0)*N[6];
const double clhs853 =             N[6]*N[7]*clhs0;
const double clhs854 =             DN(6,0)*DN(7,0);
const double clhs855 =             clhs10*clhs854 + clhs853;
const double clhs856 =             DN(7,1)*clhs849;
const double clhs857 =             DN(7,2)*clhs849;
const double clhs858 =             DN(6,0)*N[7];
const double clhs859 =             pow(DN(6,1), 2);
const double clhs860 =             DN(6,1)*clhs10;
const double clhs861 =             DN(6,2)*clhs860;
const double clhs862 =             DN(6,1)*N[6];
const double clhs863 =             DN(7,0)*clhs860;
const double clhs864 =             DN(6,1)*DN(7,1);
const double clhs865 =             clhs10*clhs864 + clhs853;
const double clhs866 =             DN(7,2)*clhs860;
const double clhs867 =             DN(6,1)*N[7];
const double clhs868 =             pow(DN(6,2), 2);
const double clhs869 =             DN(6,2)*N[6];
const double clhs870 =             DN(6,2)*clhs10;
const double clhs871 =             DN(7,0)*clhs870;
const double clhs872 =             DN(7,1)*clhs870;
const double clhs873 =             DN(6,2)*DN(7,2);
const double clhs874 =             clhs10*clhs873 + clhs853;
const double clhs875 =             DN(6,2)*N[7];
const double clhs876 =             DN(7,0)*N[6];
const double clhs877 =             DN(7,1)*N[6];
const double clhs878 =             DN(7,2)*N[6];
const double clhs879 =             clhs346*(clhs854 + clhs864 + clhs873);
const double clhs880 =             pow(N[7], 2)*clhs0;
const double clhs881 =             pow(DN(7,0), 2);
const double clhs882 =             DN(7,0)*clhs10;
const double clhs883 =             DN(7,1)*clhs882;
const double clhs884 =             DN(7,2)*clhs882;
const double clhs885 =             DN(7,0)*N[7];
const double clhs886 =             pow(DN(7,1), 2);
const double clhs887 =             DN(7,1)*DN(7,2)*clhs10;
const double clhs888 =             DN(7,1)*N[7];
const double clhs889 =             pow(DN(7,2), 2);
const double clhs890 =             DN(7,2)*N[7];
            lhs(0,0)=DN(0,0)*clhs2 + DN(0,1)*clhs4 + DN(0,2)*clhs6 + clhs1 + clhs10*clhs7;
            lhs(0,1)=DN(0,0)*clhs11 + DN(0,1)*clhs13 + DN(0,2)*clhs16 + clhs18;
            lhs(0,2)=DN(0,0)*clhs19 + DN(0,1)*clhs21 + DN(0,2)*clhs23 + clhs24;
            lhs(0,3)=-clhs25;
            lhs(0,4)=DN(0,0)*clhs26 + DN(0,1)*clhs28 + DN(0,2)*clhs30 + clhs34;
            lhs(0,5)=DN(0,0)*clhs35 + DN(0,1)*clhs37 + DN(0,2)*clhs40 + clhs41;
            lhs(0,6)=DN(0,0)*clhs42 + DN(0,1)*clhs44 + DN(0,2)*clhs46 + clhs47;
            lhs(0,7)=-clhs48;
            lhs(0,8)=DN(0,0)*clhs49 + DN(0,1)*clhs51 + DN(0,2)*clhs53 + clhs56;
            lhs(0,9)=DN(0,0)*clhs57 + DN(0,1)*clhs59 + DN(0,2)*clhs62 + clhs63;
            lhs(0,10)=DN(0,0)*clhs64 + DN(0,1)*clhs66 + DN(0,2)*clhs68 + clhs69;
            lhs(0,11)=-clhs70;
            lhs(0,12)=DN(0,0)*clhs71 + DN(0,1)*clhs73 + DN(0,2)*clhs75 + clhs78;
            lhs(0,13)=DN(0,0)*clhs79 + DN(0,1)*clhs81 + DN(0,2)*clhs84 + clhs85;
            lhs(0,14)=DN(0,0)*clhs86 + DN(0,1)*clhs88 + DN(0,2)*clhs90 + clhs91;
            lhs(0,15)=-clhs92;
            lhs(0,16)=DN(0,0)*clhs93 + DN(0,1)*clhs95 + DN(0,2)*clhs97 + clhs100;
            lhs(0,17)=DN(0,0)*clhs101 + DN(0,1)*clhs103 + DN(0,2)*clhs106 + clhs107;
            lhs(0,18)=DN(0,0)*clhs108 + DN(0,1)*clhs110 + DN(0,2)*clhs112 + clhs113;
            lhs(0,19)=-clhs114;
            lhs(0,20)=DN(0,0)*clhs115 + DN(0,1)*clhs117 + DN(0,2)*clhs119 + clhs122;
            lhs(0,21)=DN(0,0)*clhs123 + DN(0,1)*clhs125 + DN(0,2)*clhs128 + clhs129;
            lhs(0,22)=DN(0,0)*clhs130 + DN(0,1)*clhs132 + DN(0,2)*clhs134 + clhs135;
            lhs(0,23)=-clhs136;
            lhs(0,24)=DN(0,0)*clhs137 + DN(0,1)*clhs139 + DN(0,2)*clhs141 + clhs144;
            lhs(0,25)=DN(0,0)*clhs145 + DN(0,1)*clhs147 + DN(0,2)*clhs150 + clhs151;
            lhs(0,26)=DN(0,0)*clhs152 + DN(0,1)*clhs154 + DN(0,2)*clhs156 + clhs157;
            lhs(0,27)=-clhs158;
            lhs(0,28)=DN(0,0)*clhs159 + DN(0,1)*clhs161 + DN(0,2)*clhs163 + clhs166;
            lhs(0,29)=DN(0,0)*clhs167 + DN(0,1)*clhs169 + DN(0,2)*clhs172 + clhs173;
            lhs(0,30)=DN(0,0)*clhs174 + DN(0,1)*clhs176 + DN(0,2)*clhs178 + clhs179;
            lhs(0,31)=-clhs180;
            lhs(1,0)=DN(0,0)*clhs4 + DN(0,1)*clhs181 + DN(0,2)*clhs182 + clhs18;
            lhs(1,1)=DN(0,0)*clhs13 + DN(0,1)*clhs183 + DN(0,2)*clhs185 + clhs1 + clhs10*clhs186;
            lhs(1,2)=DN(0,0)*clhs21 + DN(0,1)*clhs187 + DN(0,2)*clhs189 + clhs191;
            lhs(1,3)=-clhs192;
            lhs(1,4)=DN(0,0)*clhs28 + DN(0,1)*clhs193 + DN(0,2)*clhs194 + clhs195;
            lhs(1,5)=DN(0,0)*clhs37 + DN(0,1)*clhs196 + DN(0,2)*clhs198 + clhs200;
            lhs(1,6)=DN(0,0)*clhs44 + DN(0,1)*clhs201 + DN(0,2)*clhs203 + clhs204;
            lhs(1,7)=-clhs205;
            lhs(1,8)=DN(0,0)*clhs51 + DN(0,1)*clhs206 + DN(0,2)*clhs207 + clhs208;
            lhs(1,9)=DN(0,0)*clhs59 + DN(0,1)*clhs209 + DN(0,2)*clhs211 + clhs213;
            lhs(1,10)=DN(0,0)*clhs66 + DN(0,1)*clhs214 + DN(0,2)*clhs216 + clhs217;
            lhs(1,11)=-clhs218;
            lhs(1,12)=DN(0,0)*clhs73 + DN(0,1)*clhs219 + DN(0,2)*clhs220 + clhs221;
            lhs(1,13)=DN(0,0)*clhs81 + DN(0,1)*clhs222 + DN(0,2)*clhs224 + clhs226;
            lhs(1,14)=DN(0,0)*clhs88 + DN(0,1)*clhs227 + DN(0,2)*clhs229 + clhs230;
            lhs(1,15)=-clhs231;
            lhs(1,16)=DN(0,0)*clhs95 + DN(0,1)*clhs232 + DN(0,2)*clhs233 + clhs234;
            lhs(1,17)=DN(0,0)*clhs103 + DN(0,1)*clhs235 + DN(0,2)*clhs237 + clhs239;
            lhs(1,18)=DN(0,0)*clhs110 + DN(0,1)*clhs240 + DN(0,2)*clhs242 + clhs243;
            lhs(1,19)=-clhs244;
            lhs(1,20)=DN(0,0)*clhs117 + DN(0,1)*clhs245 + DN(0,2)*clhs246 + clhs247;
            lhs(1,21)=DN(0,0)*clhs125 + DN(0,1)*clhs248 + DN(0,2)*clhs250 + clhs252;
            lhs(1,22)=DN(0,0)*clhs132 + DN(0,1)*clhs253 + DN(0,2)*clhs255 + clhs256;
            lhs(1,23)=-clhs257;
            lhs(1,24)=DN(0,0)*clhs139 + DN(0,1)*clhs258 + DN(0,2)*clhs259 + clhs260;
            lhs(1,25)=DN(0,0)*clhs147 + DN(0,1)*clhs261 + DN(0,2)*clhs263 + clhs265;
            lhs(1,26)=DN(0,0)*clhs154 + DN(0,1)*clhs266 + DN(0,2)*clhs268 + clhs269;
            lhs(1,27)=-clhs270;
            lhs(1,28)=DN(0,0)*clhs161 + DN(0,1)*clhs271 + DN(0,2)*clhs272 + clhs273;
            lhs(1,29)=DN(0,0)*clhs169 + DN(0,1)*clhs274 + DN(0,2)*clhs276 + clhs278;
            lhs(1,30)=DN(0,0)*clhs176 + DN(0,1)*clhs279 + DN(0,2)*clhs281 + clhs282;
            lhs(1,31)=-clhs283;
            lhs(2,0)=DN(0,0)*clhs6 + DN(0,1)*clhs182 + DN(0,2)*clhs284 + clhs24;
            lhs(2,1)=DN(0,0)*clhs16 + DN(0,1)*clhs185 + DN(0,2)*clhs285 + clhs191;
            lhs(2,2)=DN(0,0)*clhs23 + DN(0,1)*clhs189 + DN(0,2)*clhs286 + clhs1 + clhs10*clhs287;
            lhs(2,3)=-clhs288;
            lhs(2,4)=DN(0,0)*clhs30 + DN(0,1)*clhs194 + DN(0,2)*clhs289 + clhs291;
            lhs(2,5)=DN(0,0)*clhs40 + DN(0,1)*clhs198 + DN(0,2)*clhs292 + clhs293;
            lhs(2,6)=DN(0,0)*clhs46 + DN(0,1)*clhs203 + DN(0,2)*clhs294 + clhs296;
            lhs(2,7)=-clhs297;
            lhs(2,8)=DN(0,0)*clhs53 + DN(0,1)*clhs207 + DN(0,2)*clhs298 + clhs299;
            lhs(2,9)=DN(0,0)*clhs62 + DN(0,1)*clhs211 + DN(0,2)*clhs300 + clhs301;
            lhs(2,10)=DN(0,0)*clhs68 + DN(0,1)*clhs216 + DN(0,2)*clhs302 + clhs304;
            lhs(2,11)=-clhs305;
            lhs(2,12)=DN(0,0)*clhs75 + DN(0,1)*clhs220 + DN(0,2)*clhs306 + clhs307;
            lhs(2,13)=DN(0,0)*clhs84 + DN(0,1)*clhs224 + DN(0,2)*clhs308 + clhs309;
            lhs(2,14)=DN(0,0)*clhs90 + DN(0,1)*clhs229 + DN(0,2)*clhs310 + clhs312;
            lhs(2,15)=-clhs313;
            lhs(2,16)=DN(0,0)*clhs97 + DN(0,1)*clhs233 + DN(0,2)*clhs314 + clhs315;
            lhs(2,17)=DN(0,0)*clhs106 + DN(0,1)*clhs237 + DN(0,2)*clhs316 + clhs317;
            lhs(2,18)=DN(0,0)*clhs112 + DN(0,1)*clhs242 + DN(0,2)*clhs318 + clhs320;
            lhs(2,19)=-clhs321;
            lhs(2,20)=DN(0,0)*clhs119 + DN(0,1)*clhs246 + DN(0,2)*clhs322 + clhs323;
            lhs(2,21)=DN(0,0)*clhs128 + DN(0,1)*clhs250 + DN(0,2)*clhs324 + clhs325;
            lhs(2,22)=DN(0,0)*clhs134 + DN(0,1)*clhs255 + DN(0,2)*clhs326 + clhs328;
            lhs(2,23)=-clhs329;
            lhs(2,24)=DN(0,0)*clhs141 + DN(0,1)*clhs259 + DN(0,2)*clhs330 + clhs331;
            lhs(2,25)=DN(0,0)*clhs150 + DN(0,1)*clhs263 + DN(0,2)*clhs332 + clhs333;
            lhs(2,26)=DN(0,0)*clhs156 + DN(0,1)*clhs268 + DN(0,2)*clhs334 + clhs336;
            lhs(2,27)=-clhs337;
            lhs(2,28)=DN(0,0)*clhs163 + DN(0,1)*clhs272 + DN(0,2)*clhs338 + clhs339;
            lhs(2,29)=DN(0,0)*clhs172 + DN(0,1)*clhs276 + DN(0,2)*clhs340 + clhs341;
            lhs(2,30)=DN(0,0)*clhs178 + DN(0,1)*clhs281 + DN(0,2)*clhs342 + clhs344;
            lhs(2,31)=-clhs345;
            lhs(3,0)=clhs25*clhs348;
            lhs(3,1)=clhs192*clhs348;
            lhs(3,2)=clhs288*clhs348;
            lhs(3,3)=clhs346*(clhs186 + clhs287 + clhs7);
            lhs(3,4)=clhs347*clhs48 + clhs349;
            lhs(3,5)=clhs205*clhs347 + clhs350;
            lhs(3,6)=clhs297*clhs347 + clhs351;
            lhs(3,7)=clhs352;
            lhs(3,8)=clhs347*clhs70 + clhs353;
            lhs(3,9)=clhs218*clhs347 + clhs354;
            lhs(3,10)=clhs305*clhs347 + clhs355;
            lhs(3,11)=clhs356;
            lhs(3,12)=clhs347*clhs92 + clhs357;
            lhs(3,13)=clhs231*clhs347 + clhs358;
            lhs(3,14)=clhs313*clhs347 + clhs359;
            lhs(3,15)=clhs360;
            lhs(3,16)=clhs114*clhs347 + clhs361;
            lhs(3,17)=clhs244*clhs347 + clhs362;
            lhs(3,18)=clhs321*clhs347 + clhs363;
            lhs(3,19)=clhs364;
            lhs(3,20)=clhs136*clhs347 + clhs365;
            lhs(3,21)=clhs257*clhs347 + clhs366;
            lhs(3,22)=clhs329*clhs347 + clhs367;
            lhs(3,23)=clhs368;
            lhs(3,24)=clhs158*clhs347 + clhs369;
            lhs(3,25)=clhs270*clhs347 + clhs370;
            lhs(3,26)=clhs337*clhs347 + clhs371;
            lhs(3,27)=clhs372;
            lhs(3,28)=clhs180*clhs347 + clhs373;
            lhs(3,29)=clhs283*clhs347 + clhs374;
            lhs(3,30)=clhs345*clhs347 + clhs375;
            lhs(3,31)=clhs376;
            lhs(4,0)=DN(1,0)*clhs2 + DN(1,1)*clhs4 + DN(1,2)*clhs6 + clhs34;
            lhs(4,1)=DN(1,0)*clhs11 + DN(1,1)*clhs13 + DN(1,2)*clhs16 + clhs195;
            lhs(4,2)=DN(1,0)*clhs19 + DN(1,1)*clhs21 + DN(1,2)*clhs23 + clhs291;
            lhs(4,3)=-clhs349;
            lhs(4,4)=DN(1,0)*clhs26 + DN(1,1)*clhs28 + DN(1,2)*clhs30 + clhs10*clhs378 + clhs377;
            lhs(4,5)=DN(1,0)*clhs35 + DN(1,1)*clhs37 + DN(1,2)*clhs40 + clhs380;
            lhs(4,6)=DN(1,0)*clhs42 + DN(1,1)*clhs44 + DN(1,2)*clhs46 + clhs381;
            lhs(4,7)=-clhs382;
            lhs(4,8)=DN(1,0)*clhs49 + DN(1,1)*clhs51 + DN(1,2)*clhs53 + clhs386;
            lhs(4,9)=DN(1,0)*clhs57 + DN(1,1)*clhs59 + DN(1,2)*clhs62 + clhs387;
            lhs(4,10)=DN(1,0)*clhs64 + DN(1,1)*clhs66 + DN(1,2)*clhs68 + clhs388;
            lhs(4,11)=-clhs389;
            lhs(4,12)=DN(1,0)*clhs71 + DN(1,1)*clhs73 + DN(1,2)*clhs75 + clhs392;
            lhs(4,13)=DN(1,0)*clhs79 + DN(1,1)*clhs81 + DN(1,2)*clhs84 + clhs393;
            lhs(4,14)=DN(1,0)*clhs86 + DN(1,1)*clhs88 + DN(1,2)*clhs90 + clhs394;
            lhs(4,15)=-clhs395;
            lhs(4,16)=DN(1,0)*clhs93 + DN(1,1)*clhs95 + DN(1,2)*clhs97 + clhs398;
            lhs(4,17)=DN(1,0)*clhs101 + DN(1,1)*clhs103 + DN(1,2)*clhs106 + clhs399;
            lhs(4,18)=DN(1,0)*clhs108 + DN(1,1)*clhs110 + DN(1,2)*clhs112 + clhs400;
            lhs(4,19)=-clhs401;
            lhs(4,20)=DN(1,0)*clhs115 + DN(1,1)*clhs117 + DN(1,2)*clhs119 + clhs404;
            lhs(4,21)=DN(1,0)*clhs123 + DN(1,1)*clhs125 + DN(1,2)*clhs128 + clhs405;
            lhs(4,22)=DN(1,0)*clhs130 + DN(1,1)*clhs132 + DN(1,2)*clhs134 + clhs406;
            lhs(4,23)=-clhs407;
            lhs(4,24)=DN(1,0)*clhs137 + DN(1,1)*clhs139 + DN(1,2)*clhs141 + clhs410;
            lhs(4,25)=DN(1,0)*clhs145 + DN(1,1)*clhs147 + DN(1,2)*clhs150 + clhs411;
            lhs(4,26)=DN(1,0)*clhs152 + DN(1,1)*clhs154 + DN(1,2)*clhs156 + clhs412;
            lhs(4,27)=-clhs413;
            lhs(4,28)=DN(1,0)*clhs159 + DN(1,1)*clhs161 + DN(1,2)*clhs163 + clhs416;
            lhs(4,29)=DN(1,0)*clhs167 + DN(1,1)*clhs169 + DN(1,2)*clhs172 + clhs417;
            lhs(4,30)=DN(1,0)*clhs174 + DN(1,1)*clhs176 + DN(1,2)*clhs178 + clhs418;
            lhs(4,31)=-clhs419;
            lhs(5,0)=DN(1,0)*clhs4 + DN(1,1)*clhs181 + DN(1,2)*clhs182 + clhs41;
            lhs(5,1)=DN(1,0)*clhs13 + DN(1,1)*clhs183 + DN(1,2)*clhs185 + clhs200;
            lhs(5,2)=DN(1,0)*clhs21 + DN(1,1)*clhs187 + DN(1,2)*clhs189 + clhs293;
            lhs(5,3)=-clhs350;
            lhs(5,4)=DN(1,0)*clhs28 + DN(1,1)*clhs193 + DN(1,2)*clhs194 + clhs380;
            lhs(5,5)=DN(1,0)*clhs37 + DN(1,1)*clhs196 + DN(1,2)*clhs198 + clhs10*clhs420 + clhs377;
            lhs(5,6)=DN(1,0)*clhs44 + DN(1,1)*clhs201 + DN(1,2)*clhs203 + clhs422;
            lhs(5,7)=-clhs423;
            lhs(5,8)=DN(1,0)*clhs51 + DN(1,1)*clhs206 + DN(1,2)*clhs207 + clhs424;
            lhs(5,9)=DN(1,0)*clhs59 + DN(1,1)*clhs209 + DN(1,2)*clhs211 + clhs426;
            lhs(5,10)=DN(1,0)*clhs66 + DN(1,1)*clhs214 + DN(1,2)*clhs216 + clhs427;
            lhs(5,11)=-clhs428;
            lhs(5,12)=DN(1,0)*clhs73 + DN(1,1)*clhs219 + DN(1,2)*clhs220 + clhs429;
            lhs(5,13)=DN(1,0)*clhs81 + DN(1,1)*clhs222 + DN(1,2)*clhs224 + clhs431;
            lhs(5,14)=DN(1,0)*clhs88 + DN(1,1)*clhs227 + DN(1,2)*clhs229 + clhs432;
            lhs(5,15)=-clhs433;
            lhs(5,16)=DN(1,0)*clhs95 + DN(1,1)*clhs232 + DN(1,2)*clhs233 + clhs434;
            lhs(5,17)=DN(1,0)*clhs103 + DN(1,1)*clhs235 + DN(1,2)*clhs237 + clhs436;
            lhs(5,18)=DN(1,0)*clhs110 + DN(1,1)*clhs240 + DN(1,2)*clhs242 + clhs437;
            lhs(5,19)=-clhs438;
            lhs(5,20)=DN(1,0)*clhs117 + DN(1,1)*clhs245 + DN(1,2)*clhs246 + clhs439;
            lhs(5,21)=DN(1,0)*clhs125 + DN(1,1)*clhs248 + DN(1,2)*clhs250 + clhs441;
            lhs(5,22)=DN(1,0)*clhs132 + DN(1,1)*clhs253 + DN(1,2)*clhs255 + clhs442;
            lhs(5,23)=-clhs443;
            lhs(5,24)=DN(1,0)*clhs139 + DN(1,1)*clhs258 + DN(1,2)*clhs259 + clhs444;
            lhs(5,25)=DN(1,0)*clhs147 + DN(1,1)*clhs261 + DN(1,2)*clhs263 + clhs446;
            lhs(5,26)=DN(1,0)*clhs154 + DN(1,1)*clhs266 + DN(1,2)*clhs268 + clhs447;
            lhs(5,27)=-clhs448;
            lhs(5,28)=DN(1,0)*clhs161 + DN(1,1)*clhs271 + DN(1,2)*clhs272 + clhs449;
            lhs(5,29)=DN(1,0)*clhs169 + DN(1,1)*clhs274 + DN(1,2)*clhs276 + clhs451;
            lhs(5,30)=DN(1,0)*clhs176 + DN(1,1)*clhs279 + DN(1,2)*clhs281 + clhs452;
            lhs(5,31)=-clhs453;
            lhs(6,0)=DN(1,0)*clhs6 + DN(1,1)*clhs182 + DN(1,2)*clhs284 + clhs47;
            lhs(6,1)=DN(1,0)*clhs16 + DN(1,1)*clhs185 + DN(1,2)*clhs285 + clhs204;
            lhs(6,2)=DN(1,0)*clhs23 + DN(1,1)*clhs189 + DN(1,2)*clhs286 + clhs296;
            lhs(6,3)=-clhs351;
            lhs(6,4)=DN(1,0)*clhs30 + DN(1,1)*clhs194 + DN(1,2)*clhs289 + clhs381;
            lhs(6,5)=DN(1,0)*clhs40 + DN(1,1)*clhs198 + DN(1,2)*clhs292 + clhs422;
            lhs(6,6)=DN(1,0)*clhs46 + DN(1,1)*clhs203 + DN(1,2)*clhs294 + clhs10*clhs454 + clhs377;
            lhs(6,7)=-clhs455;
            lhs(6,8)=DN(1,0)*clhs53 + DN(1,1)*clhs207 + DN(1,2)*clhs298 + clhs457;
            lhs(6,9)=DN(1,0)*clhs62 + DN(1,1)*clhs211 + DN(1,2)*clhs300 + clhs458;
            lhs(6,10)=DN(1,0)*clhs68 + DN(1,1)*clhs216 + DN(1,2)*clhs302 + clhs460;
            lhs(6,11)=-clhs461;
            lhs(6,12)=DN(1,0)*clhs75 + DN(1,1)*clhs220 + DN(1,2)*clhs306 + clhs462;
            lhs(6,13)=DN(1,0)*clhs84 + DN(1,1)*clhs224 + DN(1,2)*clhs308 + clhs463;
            lhs(6,14)=DN(1,0)*clhs90 + DN(1,1)*clhs229 + DN(1,2)*clhs310 + clhs465;
            lhs(6,15)=-clhs466;
            lhs(6,16)=DN(1,0)*clhs97 + DN(1,1)*clhs233 + DN(1,2)*clhs314 + clhs467;
            lhs(6,17)=DN(1,0)*clhs106 + DN(1,1)*clhs237 + DN(1,2)*clhs316 + clhs468;
            lhs(6,18)=DN(1,0)*clhs112 + DN(1,1)*clhs242 + DN(1,2)*clhs318 + clhs470;
            lhs(6,19)=-clhs471;
            lhs(6,20)=DN(1,0)*clhs119 + DN(1,1)*clhs246 + DN(1,2)*clhs322 + clhs472;
            lhs(6,21)=DN(1,0)*clhs128 + DN(1,1)*clhs250 + DN(1,2)*clhs324 + clhs473;
            lhs(6,22)=DN(1,0)*clhs134 + DN(1,1)*clhs255 + DN(1,2)*clhs326 + clhs475;
            lhs(6,23)=-clhs476;
            lhs(6,24)=DN(1,0)*clhs141 + DN(1,1)*clhs259 + DN(1,2)*clhs330 + clhs477;
            lhs(6,25)=DN(1,0)*clhs150 + DN(1,1)*clhs263 + DN(1,2)*clhs332 + clhs478;
            lhs(6,26)=DN(1,0)*clhs156 + DN(1,1)*clhs268 + DN(1,2)*clhs334 + clhs480;
            lhs(6,27)=-clhs481;
            lhs(6,28)=DN(1,0)*clhs163 + DN(1,1)*clhs272 + DN(1,2)*clhs338 + clhs482;
            lhs(6,29)=DN(1,0)*clhs172 + DN(1,1)*clhs276 + DN(1,2)*clhs340 + clhs483;
            lhs(6,30)=DN(1,0)*clhs178 + DN(1,1)*clhs281 + DN(1,2)*clhs342 + clhs485;
            lhs(6,31)=-clhs486;
            lhs(7,0)=clhs347*clhs349 + clhs48;
            lhs(7,1)=clhs205 + clhs347*clhs350;
            lhs(7,2)=clhs297 + clhs347*clhs351;
            lhs(7,3)=clhs352;
            lhs(7,4)=clhs348*clhs382;
            lhs(7,5)=clhs348*clhs423;
            lhs(7,6)=clhs348*clhs455;
            lhs(7,7)=clhs346*(clhs378 + clhs420 + clhs454);
            lhs(7,8)=clhs347*clhs389 + clhs487;
            lhs(7,9)=clhs347*clhs428 + clhs488;
            lhs(7,10)=clhs347*clhs461 + clhs489;
            lhs(7,11)=clhs490;
            lhs(7,12)=clhs347*clhs395 + clhs491;
            lhs(7,13)=clhs347*clhs433 + clhs492;
            lhs(7,14)=clhs347*clhs466 + clhs493;
            lhs(7,15)=clhs494;
            lhs(7,16)=clhs347*clhs401 + clhs495;
            lhs(7,17)=clhs347*clhs438 + clhs496;
            lhs(7,18)=clhs347*clhs471 + clhs497;
            lhs(7,19)=clhs498;
            lhs(7,20)=clhs347*clhs407 + clhs499;
            lhs(7,21)=clhs347*clhs443 + clhs500;
            lhs(7,22)=clhs347*clhs476 + clhs501;
            lhs(7,23)=clhs502;
            lhs(7,24)=clhs347*clhs413 + clhs503;
            lhs(7,25)=clhs347*clhs448 + clhs504;
            lhs(7,26)=clhs347*clhs481 + clhs505;
            lhs(7,27)=clhs506;
            lhs(7,28)=clhs347*clhs419 + clhs507;
            lhs(7,29)=clhs347*clhs453 + clhs508;
            lhs(7,30)=clhs347*clhs486 + clhs509;
            lhs(7,31)=clhs510;
            lhs(8,0)=DN(2,0)*clhs2 + DN(2,1)*clhs4 + DN(2,2)*clhs6 + clhs56;
            lhs(8,1)=DN(2,0)*clhs11 + DN(2,1)*clhs13 + DN(2,2)*clhs16 + clhs208;
            lhs(8,2)=DN(2,0)*clhs19 + DN(2,1)*clhs21 + DN(2,2)*clhs23 + clhs299;
            lhs(8,3)=-clhs353;
            lhs(8,4)=DN(2,0)*clhs26 + DN(2,1)*clhs28 + DN(2,2)*clhs30 + clhs386;
            lhs(8,5)=DN(2,0)*clhs35 + DN(2,1)*clhs37 + DN(2,2)*clhs40 + clhs424;
            lhs(8,6)=DN(2,0)*clhs42 + DN(2,1)*clhs44 + DN(2,2)*clhs46 + clhs457;
            lhs(8,7)=-clhs487;
            lhs(8,8)=DN(2,0)*clhs49 + DN(2,1)*clhs51 + DN(2,2)*clhs53 + clhs10*clhs512 + clhs511;
            lhs(8,9)=DN(2,0)*clhs57 + DN(2,1)*clhs59 + DN(2,2)*clhs62 + clhs514;
            lhs(8,10)=DN(2,0)*clhs64 + DN(2,1)*clhs66 + DN(2,2)*clhs68 + clhs515;
            lhs(8,11)=-clhs516;
            lhs(8,12)=DN(2,0)*clhs71 + DN(2,1)*clhs73 + DN(2,2)*clhs75 + clhs520;
            lhs(8,13)=DN(2,0)*clhs79 + DN(2,1)*clhs81 + DN(2,2)*clhs84 + clhs521;
            lhs(8,14)=DN(2,0)*clhs86 + DN(2,1)*clhs88 + DN(2,2)*clhs90 + clhs522;
            lhs(8,15)=-clhs523;
            lhs(8,16)=DN(2,0)*clhs93 + DN(2,1)*clhs95 + DN(2,2)*clhs97 + clhs526;
            lhs(8,17)=DN(2,0)*clhs101 + DN(2,1)*clhs103 + DN(2,2)*clhs106 + clhs527;
            lhs(8,18)=DN(2,0)*clhs108 + DN(2,1)*clhs110 + DN(2,2)*clhs112 + clhs528;
            lhs(8,19)=-clhs529;
            lhs(8,20)=DN(2,0)*clhs115 + DN(2,1)*clhs117 + DN(2,2)*clhs119 + clhs532;
            lhs(8,21)=DN(2,0)*clhs123 + DN(2,1)*clhs125 + DN(2,2)*clhs128 + clhs533;
            lhs(8,22)=DN(2,0)*clhs130 + DN(2,1)*clhs132 + DN(2,2)*clhs134 + clhs534;
            lhs(8,23)=-clhs535;
            lhs(8,24)=DN(2,0)*clhs137 + DN(2,1)*clhs139 + DN(2,2)*clhs141 + clhs538;
            lhs(8,25)=DN(2,0)*clhs145 + DN(2,1)*clhs147 + DN(2,2)*clhs150 + clhs539;
            lhs(8,26)=DN(2,0)*clhs152 + DN(2,1)*clhs154 + DN(2,2)*clhs156 + clhs540;
            lhs(8,27)=-clhs541;
            lhs(8,28)=DN(2,0)*clhs159 + DN(2,1)*clhs161 + DN(2,2)*clhs163 + clhs544;
            lhs(8,29)=DN(2,0)*clhs167 + DN(2,1)*clhs169 + DN(2,2)*clhs172 + clhs545;
            lhs(8,30)=DN(2,0)*clhs174 + DN(2,1)*clhs176 + DN(2,2)*clhs178 + clhs546;
            lhs(8,31)=-clhs547;
            lhs(9,0)=DN(2,0)*clhs4 + DN(2,1)*clhs181 + DN(2,2)*clhs182 + clhs63;
            lhs(9,1)=DN(2,0)*clhs13 + DN(2,1)*clhs183 + DN(2,2)*clhs185 + clhs213;
            lhs(9,2)=DN(2,0)*clhs21 + DN(2,1)*clhs187 + DN(2,2)*clhs189 + clhs301;
            lhs(9,3)=-clhs354;
            lhs(9,4)=DN(2,0)*clhs28 + DN(2,1)*clhs193 + DN(2,2)*clhs194 + clhs387;
            lhs(9,5)=DN(2,0)*clhs37 + DN(2,1)*clhs196 + DN(2,2)*clhs198 + clhs426;
            lhs(9,6)=DN(2,0)*clhs44 + DN(2,1)*clhs201 + DN(2,2)*clhs203 + clhs458;
            lhs(9,7)=-clhs488;
            lhs(9,8)=DN(2,0)*clhs51 + DN(2,1)*clhs206 + DN(2,2)*clhs207 + clhs514;
            lhs(9,9)=DN(2,0)*clhs59 + DN(2,1)*clhs209 + DN(2,2)*clhs211 + clhs10*clhs548 + clhs511;
            lhs(9,10)=DN(2,0)*clhs66 + DN(2,1)*clhs214 + DN(2,2)*clhs216 + clhs550;
            lhs(9,11)=-clhs551;
            lhs(9,12)=DN(2,0)*clhs73 + DN(2,1)*clhs219 + DN(2,2)*clhs220 + clhs552;
            lhs(9,13)=DN(2,0)*clhs81 + DN(2,1)*clhs222 + DN(2,2)*clhs224 + clhs554;
            lhs(9,14)=DN(2,0)*clhs88 + DN(2,1)*clhs227 + DN(2,2)*clhs229 + clhs555;
            lhs(9,15)=-clhs556;
            lhs(9,16)=DN(2,0)*clhs95 + DN(2,1)*clhs232 + DN(2,2)*clhs233 + clhs557;
            lhs(9,17)=DN(2,0)*clhs103 + DN(2,1)*clhs235 + DN(2,2)*clhs237 + clhs559;
            lhs(9,18)=DN(2,0)*clhs110 + DN(2,1)*clhs240 + DN(2,2)*clhs242 + clhs560;
            lhs(9,19)=-clhs561;
            lhs(9,20)=DN(2,0)*clhs117 + DN(2,1)*clhs245 + DN(2,2)*clhs246 + clhs562;
            lhs(9,21)=DN(2,0)*clhs125 + DN(2,1)*clhs248 + DN(2,2)*clhs250 + clhs564;
            lhs(9,22)=DN(2,0)*clhs132 + DN(2,1)*clhs253 + DN(2,2)*clhs255 + clhs565;
            lhs(9,23)=-clhs566;
            lhs(9,24)=DN(2,0)*clhs139 + DN(2,1)*clhs258 + DN(2,2)*clhs259 + clhs567;
            lhs(9,25)=DN(2,0)*clhs147 + DN(2,1)*clhs261 + DN(2,2)*clhs263 + clhs569;
            lhs(9,26)=DN(2,0)*clhs154 + DN(2,1)*clhs266 + DN(2,2)*clhs268 + clhs570;
            lhs(9,27)=-clhs571;
            lhs(9,28)=DN(2,0)*clhs161 + DN(2,1)*clhs271 + DN(2,2)*clhs272 + clhs572;
            lhs(9,29)=DN(2,0)*clhs169 + DN(2,1)*clhs274 + DN(2,2)*clhs276 + clhs574;
            lhs(9,30)=DN(2,0)*clhs176 + DN(2,1)*clhs279 + DN(2,2)*clhs281 + clhs575;
            lhs(9,31)=-clhs576;
            lhs(10,0)=DN(2,0)*clhs6 + DN(2,1)*clhs182 + DN(2,2)*clhs284 + clhs69;
            lhs(10,1)=DN(2,0)*clhs16 + DN(2,1)*clhs185 + DN(2,2)*clhs285 + clhs217;
            lhs(10,2)=DN(2,0)*clhs23 + DN(2,1)*clhs189 + DN(2,2)*clhs286 + clhs304;
            lhs(10,3)=-clhs355;
            lhs(10,4)=DN(2,0)*clhs30 + DN(2,1)*clhs194 + DN(2,2)*clhs289 + clhs388;
            lhs(10,5)=DN(2,0)*clhs40 + DN(2,1)*clhs198 + DN(2,2)*clhs292 + clhs427;
            lhs(10,6)=DN(2,0)*clhs46 + DN(2,1)*clhs203 + DN(2,2)*clhs294 + clhs460;
            lhs(10,7)=-clhs489;
            lhs(10,8)=DN(2,0)*clhs53 + DN(2,1)*clhs207 + DN(2,2)*clhs298 + clhs515;
            lhs(10,9)=DN(2,0)*clhs62 + DN(2,1)*clhs211 + DN(2,2)*clhs300 + clhs550;
            lhs(10,10)=DN(2,0)*clhs68 + DN(2,1)*clhs216 + DN(2,2)*clhs302 + clhs10*clhs577 + clhs511;
            lhs(10,11)=-clhs578;
            lhs(10,12)=DN(2,0)*clhs75 + DN(2,1)*clhs220 + DN(2,2)*clhs306 + clhs580;
            lhs(10,13)=DN(2,0)*clhs84 + DN(2,1)*clhs224 + DN(2,2)*clhs308 + clhs581;
            lhs(10,14)=DN(2,0)*clhs90 + DN(2,1)*clhs229 + DN(2,2)*clhs310 + clhs583;
            lhs(10,15)=-clhs584;
            lhs(10,16)=DN(2,0)*clhs97 + DN(2,1)*clhs233 + DN(2,2)*clhs314 + clhs585;
            lhs(10,17)=DN(2,0)*clhs106 + DN(2,1)*clhs237 + DN(2,2)*clhs316 + clhs586;
            lhs(10,18)=DN(2,0)*clhs112 + DN(2,1)*clhs242 + DN(2,2)*clhs318 + clhs588;
            lhs(10,19)=-clhs589;
            lhs(10,20)=DN(2,0)*clhs119 + DN(2,1)*clhs246 + DN(2,2)*clhs322 + clhs590;
            lhs(10,21)=DN(2,0)*clhs128 + DN(2,1)*clhs250 + DN(2,2)*clhs324 + clhs591;
            lhs(10,22)=DN(2,0)*clhs134 + DN(2,1)*clhs255 + DN(2,2)*clhs326 + clhs593;
            lhs(10,23)=-clhs594;
            lhs(10,24)=DN(2,0)*clhs141 + DN(2,1)*clhs259 + DN(2,2)*clhs330 + clhs595;
            lhs(10,25)=DN(2,0)*clhs150 + DN(2,1)*clhs263 + DN(2,2)*clhs332 + clhs596;
            lhs(10,26)=DN(2,0)*clhs156 + DN(2,1)*clhs268 + DN(2,2)*clhs334 + clhs598;
            lhs(10,27)=-clhs599;
            lhs(10,28)=DN(2,0)*clhs163 + DN(2,1)*clhs272 + DN(2,2)*clhs338 + clhs600;
            lhs(10,29)=DN(2,0)*clhs172 + DN(2,1)*clhs276 + DN(2,2)*clhs340 + clhs601;
            lhs(10,30)=DN(2,0)*clhs178 + DN(2,1)*clhs281 + DN(2,2)*clhs342 + clhs603;
            lhs(10,31)=-clhs604;
            lhs(11,0)=clhs347*clhs353 + clhs70;
            lhs(11,1)=clhs218 + clhs347*clhs354;
            lhs(11,2)=clhs305 + clhs347*clhs355;
            lhs(11,3)=clhs356;
            lhs(11,4)=clhs347*clhs487 + clhs389;
            lhs(11,5)=clhs347*clhs488 + clhs428;
            lhs(11,6)=clhs347*clhs489 + clhs461;
            lhs(11,7)=clhs490;
            lhs(11,8)=clhs348*clhs516;
            lhs(11,9)=clhs348*clhs551;
            lhs(11,10)=clhs348*clhs578;
            lhs(11,11)=clhs346*(clhs512 + clhs548 + clhs577);
            lhs(11,12)=clhs347*clhs523 + clhs605;
            lhs(11,13)=clhs347*clhs556 + clhs606;
            lhs(11,14)=clhs347*clhs584 + clhs607;
            lhs(11,15)=clhs608;
            lhs(11,16)=clhs347*clhs529 + clhs609;
            lhs(11,17)=clhs347*clhs561 + clhs610;
            lhs(11,18)=clhs347*clhs589 + clhs611;
            lhs(11,19)=clhs612;
            lhs(11,20)=clhs347*clhs535 + clhs613;
            lhs(11,21)=clhs347*clhs566 + clhs614;
            lhs(11,22)=clhs347*clhs594 + clhs615;
            lhs(11,23)=clhs616;
            lhs(11,24)=clhs347*clhs541 + clhs617;
            lhs(11,25)=clhs347*clhs571 + clhs618;
            lhs(11,26)=clhs347*clhs599 + clhs619;
            lhs(11,27)=clhs620;
            lhs(11,28)=clhs347*clhs547 + clhs621;
            lhs(11,29)=clhs347*clhs576 + clhs622;
            lhs(11,30)=clhs347*clhs604 + clhs623;
            lhs(11,31)=clhs624;
            lhs(12,0)=DN(3,0)*clhs2 + DN(3,1)*clhs4 + DN(3,2)*clhs6 + clhs78;
            lhs(12,1)=DN(3,0)*clhs11 + DN(3,1)*clhs13 + DN(3,2)*clhs16 + clhs221;
            lhs(12,2)=DN(3,0)*clhs19 + DN(3,1)*clhs21 + DN(3,2)*clhs23 + clhs307;
            lhs(12,3)=-clhs357;
            lhs(12,4)=DN(3,0)*clhs26 + DN(3,1)*clhs28 + DN(3,2)*clhs30 + clhs392;
            lhs(12,5)=DN(3,0)*clhs35 + DN(3,1)*clhs37 + DN(3,2)*clhs40 + clhs429;
            lhs(12,6)=DN(3,0)*clhs42 + DN(3,1)*clhs44 + DN(3,2)*clhs46 + clhs462;
            lhs(12,7)=-clhs491;
            lhs(12,8)=DN(3,0)*clhs49 + DN(3,1)*clhs51 + DN(3,2)*clhs53 + clhs520;
            lhs(12,9)=DN(3,0)*clhs57 + DN(3,1)*clhs59 + DN(3,2)*clhs62 + clhs552;
            lhs(12,10)=DN(3,0)*clhs64 + DN(3,1)*clhs66 + DN(3,2)*clhs68 + clhs580;
            lhs(12,11)=-clhs605;
            lhs(12,12)=DN(3,0)*clhs71 + DN(3,1)*clhs73 + DN(3,2)*clhs75 + clhs10*clhs626 + clhs625;
            lhs(12,13)=DN(3,0)*clhs79 + DN(3,1)*clhs81 + DN(3,2)*clhs84 + clhs628;
            lhs(12,14)=DN(3,0)*clhs86 + DN(3,1)*clhs88 + DN(3,2)*clhs90 + clhs629;
            lhs(12,15)=-clhs630;
            lhs(12,16)=DN(3,0)*clhs93 + DN(3,1)*clhs95 + DN(3,2)*clhs97 + clhs634;
            lhs(12,17)=DN(3,0)*clhs101 + DN(3,1)*clhs103 + DN(3,2)*clhs106 + clhs635;
            lhs(12,18)=DN(3,0)*clhs108 + DN(3,1)*clhs110 + DN(3,2)*clhs112 + clhs636;
            lhs(12,19)=-clhs637;
            lhs(12,20)=DN(3,0)*clhs115 + DN(3,1)*clhs117 + DN(3,2)*clhs119 + clhs640;
            lhs(12,21)=DN(3,0)*clhs123 + DN(3,1)*clhs125 + DN(3,2)*clhs128 + clhs641;
            lhs(12,22)=DN(3,0)*clhs130 + DN(3,1)*clhs132 + DN(3,2)*clhs134 + clhs642;
            lhs(12,23)=-clhs643;
            lhs(12,24)=DN(3,0)*clhs137 + DN(3,1)*clhs139 + DN(3,2)*clhs141 + clhs646;
            lhs(12,25)=DN(3,0)*clhs145 + DN(3,1)*clhs147 + DN(3,2)*clhs150 + clhs647;
            lhs(12,26)=DN(3,0)*clhs152 + DN(3,1)*clhs154 + DN(3,2)*clhs156 + clhs648;
            lhs(12,27)=-clhs649;
            lhs(12,28)=DN(3,0)*clhs159 + DN(3,1)*clhs161 + DN(3,2)*clhs163 + clhs652;
            lhs(12,29)=DN(3,0)*clhs167 + DN(3,1)*clhs169 + DN(3,2)*clhs172 + clhs653;
            lhs(12,30)=DN(3,0)*clhs174 + DN(3,1)*clhs176 + DN(3,2)*clhs178 + clhs654;
            lhs(12,31)=-clhs655;
            lhs(13,0)=DN(3,0)*clhs4 + DN(3,1)*clhs181 + DN(3,2)*clhs182 + clhs85;
            lhs(13,1)=DN(3,0)*clhs13 + DN(3,1)*clhs183 + DN(3,2)*clhs185 + clhs226;
            lhs(13,2)=DN(3,0)*clhs21 + DN(3,1)*clhs187 + DN(3,2)*clhs189 + clhs309;
            lhs(13,3)=-clhs358;
            lhs(13,4)=DN(3,0)*clhs28 + DN(3,1)*clhs193 + DN(3,2)*clhs194 + clhs393;
            lhs(13,5)=DN(3,0)*clhs37 + DN(3,1)*clhs196 + DN(3,2)*clhs198 + clhs431;
            lhs(13,6)=DN(3,0)*clhs44 + DN(3,1)*clhs201 + DN(3,2)*clhs203 + clhs463;
            lhs(13,7)=-clhs492;
            lhs(13,8)=DN(3,0)*clhs51 + DN(3,1)*clhs206 + DN(3,2)*clhs207 + clhs521;
            lhs(13,9)=DN(3,0)*clhs59 + DN(3,1)*clhs209 + DN(3,2)*clhs211 + clhs554;
            lhs(13,10)=DN(3,0)*clhs66 + DN(3,1)*clhs214 + DN(3,2)*clhs216 + clhs581;
            lhs(13,11)=-clhs606;
            lhs(13,12)=DN(3,0)*clhs73 + DN(3,1)*clhs219 + DN(3,2)*clhs220 + clhs628;
            lhs(13,13)=DN(3,0)*clhs81 + DN(3,1)*clhs222 + DN(3,2)*clhs224 + clhs10*clhs656 + clhs625;
            lhs(13,14)=DN(3,0)*clhs88 + DN(3,1)*clhs227 + DN(3,2)*clhs229 + clhs658;
            lhs(13,15)=-clhs659;
            lhs(13,16)=DN(3,0)*clhs95 + DN(3,1)*clhs232 + DN(3,2)*clhs233 + clhs660;
            lhs(13,17)=DN(3,0)*clhs103 + DN(3,1)*clhs235 + DN(3,2)*clhs237 + clhs662;
            lhs(13,18)=DN(3,0)*clhs110 + DN(3,1)*clhs240 + DN(3,2)*clhs242 + clhs663;
            lhs(13,19)=-clhs664;
            lhs(13,20)=DN(3,0)*clhs117 + DN(3,1)*clhs245 + DN(3,2)*clhs246 + clhs665;
            lhs(13,21)=DN(3,0)*clhs125 + DN(3,1)*clhs248 + DN(3,2)*clhs250 + clhs667;
            lhs(13,22)=DN(3,0)*clhs132 + DN(3,1)*clhs253 + DN(3,2)*clhs255 + clhs668;
            lhs(13,23)=-clhs669;
            lhs(13,24)=DN(3,0)*clhs139 + DN(3,1)*clhs258 + DN(3,2)*clhs259 + clhs670;
            lhs(13,25)=DN(3,0)*clhs147 + DN(3,1)*clhs261 + DN(3,2)*clhs263 + clhs672;
            lhs(13,26)=DN(3,0)*clhs154 + DN(3,1)*clhs266 + DN(3,2)*clhs268 + clhs673;
            lhs(13,27)=-clhs674;
            lhs(13,28)=DN(3,0)*clhs161 + DN(3,1)*clhs271 + DN(3,2)*clhs272 + clhs675;
            lhs(13,29)=DN(3,0)*clhs169 + DN(3,1)*clhs274 + DN(3,2)*clhs276 + clhs677;
            lhs(13,30)=DN(3,0)*clhs176 + DN(3,1)*clhs279 + DN(3,2)*clhs281 + clhs678;
            lhs(13,31)=-clhs679;
            lhs(14,0)=DN(3,0)*clhs6 + DN(3,1)*clhs182 + DN(3,2)*clhs284 + clhs91;
            lhs(14,1)=DN(3,0)*clhs16 + DN(3,1)*clhs185 + DN(3,2)*clhs285 + clhs230;
            lhs(14,2)=DN(3,0)*clhs23 + DN(3,1)*clhs189 + DN(3,2)*clhs286 + clhs312;
            lhs(14,3)=-clhs359;
            lhs(14,4)=DN(3,0)*clhs30 + DN(3,1)*clhs194 + DN(3,2)*clhs289 + clhs394;
            lhs(14,5)=DN(3,0)*clhs40 + DN(3,1)*clhs198 + DN(3,2)*clhs292 + clhs432;
            lhs(14,6)=DN(3,0)*clhs46 + DN(3,1)*clhs203 + DN(3,2)*clhs294 + clhs465;
            lhs(14,7)=-clhs493;
            lhs(14,8)=DN(3,0)*clhs53 + DN(3,1)*clhs207 + DN(3,2)*clhs298 + clhs522;
            lhs(14,9)=DN(3,0)*clhs62 + DN(3,1)*clhs211 + DN(3,2)*clhs300 + clhs555;
            lhs(14,10)=DN(3,0)*clhs68 + DN(3,1)*clhs216 + DN(3,2)*clhs302 + clhs583;
            lhs(14,11)=-clhs607;
            lhs(14,12)=DN(3,0)*clhs75 + DN(3,1)*clhs220 + DN(3,2)*clhs306 + clhs629;
            lhs(14,13)=DN(3,0)*clhs84 + DN(3,1)*clhs224 + DN(3,2)*clhs308 + clhs658;
            lhs(14,14)=DN(3,0)*clhs90 + DN(3,1)*clhs229 + DN(3,2)*clhs310 + clhs10*clhs680 + clhs625;
            lhs(14,15)=-clhs681;
            lhs(14,16)=DN(3,0)*clhs97 + DN(3,1)*clhs233 + DN(3,2)*clhs314 + clhs683;
            lhs(14,17)=DN(3,0)*clhs106 + DN(3,1)*clhs237 + DN(3,2)*clhs316 + clhs684;
            lhs(14,18)=DN(3,0)*clhs112 + DN(3,1)*clhs242 + DN(3,2)*clhs318 + clhs686;
            lhs(14,19)=-clhs687;
            lhs(14,20)=DN(3,0)*clhs119 + DN(3,1)*clhs246 + DN(3,2)*clhs322 + clhs688;
            lhs(14,21)=DN(3,0)*clhs128 + DN(3,1)*clhs250 + DN(3,2)*clhs324 + clhs689;
            lhs(14,22)=DN(3,0)*clhs134 + DN(3,1)*clhs255 + DN(3,2)*clhs326 + clhs691;
            lhs(14,23)=-clhs692;
            lhs(14,24)=DN(3,0)*clhs141 + DN(3,1)*clhs259 + DN(3,2)*clhs330 + clhs693;
            lhs(14,25)=DN(3,0)*clhs150 + DN(3,1)*clhs263 + DN(3,2)*clhs332 + clhs694;
            lhs(14,26)=DN(3,0)*clhs156 + DN(3,1)*clhs268 + DN(3,2)*clhs334 + clhs696;
            lhs(14,27)=-clhs697;
            lhs(14,28)=DN(3,0)*clhs163 + DN(3,1)*clhs272 + DN(3,2)*clhs338 + clhs698;
            lhs(14,29)=DN(3,0)*clhs172 + DN(3,1)*clhs276 + DN(3,2)*clhs340 + clhs699;
            lhs(14,30)=DN(3,0)*clhs178 + DN(3,1)*clhs281 + DN(3,2)*clhs342 + clhs701;
            lhs(14,31)=-clhs702;
            lhs(15,0)=clhs347*clhs357 + clhs92;
            lhs(15,1)=clhs231 + clhs347*clhs358;
            lhs(15,2)=clhs313 + clhs347*clhs359;
            lhs(15,3)=clhs360;
            lhs(15,4)=clhs347*clhs491 + clhs395;
            lhs(15,5)=clhs347*clhs492 + clhs433;
            lhs(15,6)=clhs347*clhs493 + clhs466;
            lhs(15,7)=clhs494;
            lhs(15,8)=clhs347*clhs605 + clhs523;
            lhs(15,9)=clhs347*clhs606 + clhs556;
            lhs(15,10)=clhs347*clhs607 + clhs584;
            lhs(15,11)=clhs608;
            lhs(15,12)=clhs348*clhs630;
            lhs(15,13)=clhs348*clhs659;
            lhs(15,14)=clhs348*clhs681;
            lhs(15,15)=clhs346*(clhs626 + clhs656 + clhs680);
            lhs(15,16)=clhs347*clhs637 + clhs703;
            lhs(15,17)=clhs347*clhs664 + clhs704;
            lhs(15,18)=clhs347*clhs687 + clhs705;
            lhs(15,19)=clhs706;
            lhs(15,20)=clhs347*clhs643 + clhs707;
            lhs(15,21)=clhs347*clhs669 + clhs708;
            lhs(15,22)=clhs347*clhs692 + clhs709;
            lhs(15,23)=clhs710;
            lhs(15,24)=clhs347*clhs649 + clhs711;
            lhs(15,25)=clhs347*clhs674 + clhs712;
            lhs(15,26)=clhs347*clhs697 + clhs713;
            lhs(15,27)=clhs714;
            lhs(15,28)=clhs347*clhs655 + clhs715;
            lhs(15,29)=clhs347*clhs679 + clhs716;
            lhs(15,30)=clhs347*clhs702 + clhs717;
            lhs(15,31)=clhs718;
            lhs(16,0)=DN(4,0)*clhs2 + DN(4,1)*clhs4 + DN(4,2)*clhs6 + clhs100;
            lhs(16,1)=DN(4,0)*clhs11 + DN(4,1)*clhs13 + DN(4,2)*clhs16 + clhs234;
            lhs(16,2)=DN(4,0)*clhs19 + DN(4,1)*clhs21 + DN(4,2)*clhs23 + clhs315;
            lhs(16,3)=-clhs361;
            lhs(16,4)=DN(4,0)*clhs26 + DN(4,1)*clhs28 + DN(4,2)*clhs30 + clhs398;
            lhs(16,5)=DN(4,0)*clhs35 + DN(4,1)*clhs37 + DN(4,2)*clhs40 + clhs434;
            lhs(16,6)=DN(4,0)*clhs42 + DN(4,1)*clhs44 + DN(4,2)*clhs46 + clhs467;
            lhs(16,7)=-clhs495;
            lhs(16,8)=DN(4,0)*clhs49 + DN(4,1)*clhs51 + DN(4,2)*clhs53 + clhs526;
            lhs(16,9)=DN(4,0)*clhs57 + DN(4,1)*clhs59 + DN(4,2)*clhs62 + clhs557;
            lhs(16,10)=DN(4,0)*clhs64 + DN(4,1)*clhs66 + DN(4,2)*clhs68 + clhs585;
            lhs(16,11)=-clhs609;
            lhs(16,12)=DN(4,0)*clhs71 + DN(4,1)*clhs73 + DN(4,2)*clhs75 + clhs634;
            lhs(16,13)=DN(4,0)*clhs79 + DN(4,1)*clhs81 + DN(4,2)*clhs84 + clhs660;
            lhs(16,14)=DN(4,0)*clhs86 + DN(4,1)*clhs88 + DN(4,2)*clhs90 + clhs683;
            lhs(16,15)=-clhs703;
            lhs(16,16)=DN(4,0)*clhs93 + DN(4,1)*clhs95 + DN(4,2)*clhs97 + clhs10*clhs720 + clhs719;
            lhs(16,17)=DN(4,0)*clhs101 + DN(4,1)*clhs103 + DN(4,2)*clhs106 + clhs722;
            lhs(16,18)=DN(4,0)*clhs108 + DN(4,1)*clhs110 + DN(4,2)*clhs112 + clhs723;
            lhs(16,19)=-clhs724;
            lhs(16,20)=DN(4,0)*clhs115 + DN(4,1)*clhs117 + DN(4,2)*clhs119 + clhs728;
            lhs(16,21)=DN(4,0)*clhs123 + DN(4,1)*clhs125 + DN(4,2)*clhs128 + clhs729;
            lhs(16,22)=DN(4,0)*clhs130 + DN(4,1)*clhs132 + DN(4,2)*clhs134 + clhs730;
            lhs(16,23)=-clhs731;
            lhs(16,24)=DN(4,0)*clhs137 + DN(4,1)*clhs139 + DN(4,2)*clhs141 + clhs734;
            lhs(16,25)=DN(4,0)*clhs145 + DN(4,1)*clhs147 + DN(4,2)*clhs150 + clhs735;
            lhs(16,26)=DN(4,0)*clhs152 + DN(4,1)*clhs154 + DN(4,2)*clhs156 + clhs736;
            lhs(16,27)=-clhs737;
            lhs(16,28)=DN(4,0)*clhs159 + DN(4,1)*clhs161 + DN(4,2)*clhs163 + clhs740;
            lhs(16,29)=DN(4,0)*clhs167 + DN(4,1)*clhs169 + DN(4,2)*clhs172 + clhs741;
            lhs(16,30)=DN(4,0)*clhs174 + DN(4,1)*clhs176 + DN(4,2)*clhs178 + clhs742;
            lhs(16,31)=-clhs743;
            lhs(17,0)=DN(4,0)*clhs4 + DN(4,1)*clhs181 + DN(4,2)*clhs182 + clhs107;
            lhs(17,1)=DN(4,0)*clhs13 + DN(4,1)*clhs183 + DN(4,2)*clhs185 + clhs239;
            lhs(17,2)=DN(4,0)*clhs21 + DN(4,1)*clhs187 + DN(4,2)*clhs189 + clhs317;
            lhs(17,3)=-clhs362;
            lhs(17,4)=DN(4,0)*clhs28 + DN(4,1)*clhs193 + DN(4,2)*clhs194 + clhs399;
            lhs(17,5)=DN(4,0)*clhs37 + DN(4,1)*clhs196 + DN(4,2)*clhs198 + clhs436;
            lhs(17,6)=DN(4,0)*clhs44 + DN(4,1)*clhs201 + DN(4,2)*clhs203 + clhs468;
            lhs(17,7)=-clhs496;
            lhs(17,8)=DN(4,0)*clhs51 + DN(4,1)*clhs206 + DN(4,2)*clhs207 + clhs527;
            lhs(17,9)=DN(4,0)*clhs59 + DN(4,1)*clhs209 + DN(4,2)*clhs211 + clhs559;
            lhs(17,10)=DN(4,0)*clhs66 + DN(4,1)*clhs214 + DN(4,2)*clhs216 + clhs586;
            lhs(17,11)=-clhs610;
            lhs(17,12)=DN(4,0)*clhs73 + DN(4,1)*clhs219 + DN(4,2)*clhs220 + clhs635;
            lhs(17,13)=DN(4,0)*clhs81 + DN(4,1)*clhs222 + DN(4,2)*clhs224 + clhs662;
            lhs(17,14)=DN(4,0)*clhs88 + DN(4,1)*clhs227 + DN(4,2)*clhs229 + clhs684;
            lhs(17,15)=-clhs704;
            lhs(17,16)=DN(4,0)*clhs95 + DN(4,1)*clhs232 + DN(4,2)*clhs233 + clhs722;
            lhs(17,17)=DN(4,0)*clhs103 + DN(4,1)*clhs235 + DN(4,2)*clhs237 + clhs10*clhs744 + clhs719;
            lhs(17,18)=DN(4,0)*clhs110 + DN(4,1)*clhs240 + DN(4,2)*clhs242 + clhs746;
            lhs(17,19)=-clhs747;
            lhs(17,20)=DN(4,0)*clhs117 + DN(4,1)*clhs245 + DN(4,2)*clhs246 + clhs748;
            lhs(17,21)=DN(4,0)*clhs125 + DN(4,1)*clhs248 + DN(4,2)*clhs250 + clhs750;
            lhs(17,22)=DN(4,0)*clhs132 + DN(4,1)*clhs253 + DN(4,2)*clhs255 + clhs751;
            lhs(17,23)=-clhs752;
            lhs(17,24)=DN(4,0)*clhs139 + DN(4,1)*clhs258 + DN(4,2)*clhs259 + clhs753;
            lhs(17,25)=DN(4,0)*clhs147 + DN(4,1)*clhs261 + DN(4,2)*clhs263 + clhs755;
            lhs(17,26)=DN(4,0)*clhs154 + DN(4,1)*clhs266 + DN(4,2)*clhs268 + clhs756;
            lhs(17,27)=-clhs757;
            lhs(17,28)=DN(4,0)*clhs161 + DN(4,1)*clhs271 + DN(4,2)*clhs272 + clhs758;
            lhs(17,29)=DN(4,0)*clhs169 + DN(4,1)*clhs274 + DN(4,2)*clhs276 + clhs760;
            lhs(17,30)=DN(4,0)*clhs176 + DN(4,1)*clhs279 + DN(4,2)*clhs281 + clhs761;
            lhs(17,31)=-clhs762;
            lhs(18,0)=DN(4,0)*clhs6 + DN(4,1)*clhs182 + DN(4,2)*clhs284 + clhs113;
            lhs(18,1)=DN(4,0)*clhs16 + DN(4,1)*clhs185 + DN(4,2)*clhs285 + clhs243;
            lhs(18,2)=DN(4,0)*clhs23 + DN(4,1)*clhs189 + DN(4,2)*clhs286 + clhs320;
            lhs(18,3)=-clhs363;
            lhs(18,4)=DN(4,0)*clhs30 + DN(4,1)*clhs194 + DN(4,2)*clhs289 + clhs400;
            lhs(18,5)=DN(4,0)*clhs40 + DN(4,1)*clhs198 + DN(4,2)*clhs292 + clhs437;
            lhs(18,6)=DN(4,0)*clhs46 + DN(4,1)*clhs203 + DN(4,2)*clhs294 + clhs470;
            lhs(18,7)=-clhs497;
            lhs(18,8)=DN(4,0)*clhs53 + DN(4,1)*clhs207 + DN(4,2)*clhs298 + clhs528;
            lhs(18,9)=DN(4,0)*clhs62 + DN(4,1)*clhs211 + DN(4,2)*clhs300 + clhs560;
            lhs(18,10)=DN(4,0)*clhs68 + DN(4,1)*clhs216 + DN(4,2)*clhs302 + clhs588;
            lhs(18,11)=-clhs611;
            lhs(18,12)=DN(4,0)*clhs75 + DN(4,1)*clhs220 + DN(4,2)*clhs306 + clhs636;
            lhs(18,13)=DN(4,0)*clhs84 + DN(4,1)*clhs224 + DN(4,2)*clhs308 + clhs663;
            lhs(18,14)=DN(4,0)*clhs90 + DN(4,1)*clhs229 + DN(4,2)*clhs310 + clhs686;
            lhs(18,15)=-clhs705;
            lhs(18,16)=DN(4,0)*clhs97 + DN(4,1)*clhs233 + DN(4,2)*clhs314 + clhs723;
            lhs(18,17)=DN(4,0)*clhs106 + DN(4,1)*clhs237 + DN(4,2)*clhs316 + clhs746;
            lhs(18,18)=DN(4,0)*clhs112 + DN(4,1)*clhs242 + DN(4,2)*clhs318 + clhs10*clhs763 + clhs719;
            lhs(18,19)=-clhs764;
            lhs(18,20)=DN(4,0)*clhs119 + DN(4,1)*clhs246 + DN(4,2)*clhs322 + clhs766;
            lhs(18,21)=DN(4,0)*clhs128 + DN(4,1)*clhs250 + DN(4,2)*clhs324 + clhs767;
            lhs(18,22)=DN(4,0)*clhs134 + DN(4,1)*clhs255 + DN(4,2)*clhs326 + clhs769;
            lhs(18,23)=-clhs770;
            lhs(18,24)=DN(4,0)*clhs141 + DN(4,1)*clhs259 + DN(4,2)*clhs330 + clhs771;
            lhs(18,25)=DN(4,0)*clhs150 + DN(4,1)*clhs263 + DN(4,2)*clhs332 + clhs772;
            lhs(18,26)=DN(4,0)*clhs156 + DN(4,1)*clhs268 + DN(4,2)*clhs334 + clhs774;
            lhs(18,27)=-clhs775;
            lhs(18,28)=DN(4,0)*clhs163 + DN(4,1)*clhs272 + DN(4,2)*clhs338 + clhs776;
            lhs(18,29)=DN(4,0)*clhs172 + DN(4,1)*clhs276 + DN(4,2)*clhs340 + clhs777;
            lhs(18,30)=DN(4,0)*clhs178 + DN(4,1)*clhs281 + DN(4,2)*clhs342 + clhs779;
            lhs(18,31)=-clhs780;
            lhs(19,0)=clhs114 + clhs347*clhs361;
            lhs(19,1)=clhs244 + clhs347*clhs362;
            lhs(19,2)=clhs321 + clhs347*clhs363;
            lhs(19,3)=clhs364;
            lhs(19,4)=clhs347*clhs495 + clhs401;
            lhs(19,5)=clhs347*clhs496 + clhs438;
            lhs(19,6)=clhs347*clhs497 + clhs471;
            lhs(19,7)=clhs498;
            lhs(19,8)=clhs347*clhs609 + clhs529;
            lhs(19,9)=clhs347*clhs610 + clhs561;
            lhs(19,10)=clhs347*clhs611 + clhs589;
            lhs(19,11)=clhs612;
            lhs(19,12)=clhs347*clhs703 + clhs637;
            lhs(19,13)=clhs347*clhs704 + clhs664;
            lhs(19,14)=clhs347*clhs705 + clhs687;
            lhs(19,15)=clhs706;
            lhs(19,16)=clhs348*clhs724;
            lhs(19,17)=clhs348*clhs747;
            lhs(19,18)=clhs348*clhs764;
            lhs(19,19)=clhs346*(clhs720 + clhs744 + clhs763);
            lhs(19,20)=clhs347*clhs731 + clhs781;
            lhs(19,21)=clhs347*clhs752 + clhs782;
            lhs(19,22)=clhs347*clhs770 + clhs783;
            lhs(19,23)=clhs784;
            lhs(19,24)=clhs347*clhs737 + clhs785;
            lhs(19,25)=clhs347*clhs757 + clhs786;
            lhs(19,26)=clhs347*clhs775 + clhs787;
            lhs(19,27)=clhs788;
            lhs(19,28)=clhs347*clhs743 + clhs789;
            lhs(19,29)=clhs347*clhs762 + clhs790;
            lhs(19,30)=clhs347*clhs780 + clhs791;
            lhs(19,31)=clhs792;
            lhs(20,0)=DN(5,0)*clhs2 + DN(5,1)*clhs4 + DN(5,2)*clhs6 + clhs122;
            lhs(20,1)=DN(5,0)*clhs11 + DN(5,1)*clhs13 + DN(5,2)*clhs16 + clhs247;
            lhs(20,2)=DN(5,0)*clhs19 + DN(5,1)*clhs21 + DN(5,2)*clhs23 + clhs323;
            lhs(20,3)=-clhs365;
            lhs(20,4)=DN(5,0)*clhs26 + DN(5,1)*clhs28 + DN(5,2)*clhs30 + clhs404;
            lhs(20,5)=DN(5,0)*clhs35 + DN(5,1)*clhs37 + DN(5,2)*clhs40 + clhs439;
            lhs(20,6)=DN(5,0)*clhs42 + DN(5,1)*clhs44 + DN(5,2)*clhs46 + clhs472;
            lhs(20,7)=-clhs499;
            lhs(20,8)=DN(5,0)*clhs49 + DN(5,1)*clhs51 + DN(5,2)*clhs53 + clhs532;
            lhs(20,9)=DN(5,0)*clhs57 + DN(5,1)*clhs59 + DN(5,2)*clhs62 + clhs562;
            lhs(20,10)=DN(5,0)*clhs64 + DN(5,1)*clhs66 + DN(5,2)*clhs68 + clhs590;
            lhs(20,11)=-clhs613;
            lhs(20,12)=DN(5,0)*clhs71 + DN(5,1)*clhs73 + DN(5,2)*clhs75 + clhs640;
            lhs(20,13)=DN(5,0)*clhs79 + DN(5,1)*clhs81 + DN(5,2)*clhs84 + clhs665;
            lhs(20,14)=DN(5,0)*clhs86 + DN(5,1)*clhs88 + DN(5,2)*clhs90 + clhs688;
            lhs(20,15)=-clhs707;
            lhs(20,16)=DN(5,0)*clhs93 + DN(5,1)*clhs95 + DN(5,2)*clhs97 + clhs728;
            lhs(20,17)=DN(5,0)*clhs101 + DN(5,1)*clhs103 + DN(5,2)*clhs106 + clhs748;
            lhs(20,18)=DN(5,0)*clhs108 + DN(5,1)*clhs110 + DN(5,2)*clhs112 + clhs766;
            lhs(20,19)=-clhs781;
            lhs(20,20)=DN(5,0)*clhs115 + DN(5,1)*clhs117 + DN(5,2)*clhs119 + clhs10*clhs794 + clhs793;
            lhs(20,21)=DN(5,0)*clhs123 + DN(5,1)*clhs125 + DN(5,2)*clhs128 + clhs796;
            lhs(20,22)=DN(5,0)*clhs130 + DN(5,1)*clhs132 + DN(5,2)*clhs134 + clhs797;
            lhs(20,23)=-clhs798;
            lhs(20,24)=DN(5,0)*clhs137 + DN(5,1)*clhs139 + DN(5,2)*clhs141 + clhs802;
            lhs(20,25)=DN(5,0)*clhs145 + DN(5,1)*clhs147 + DN(5,2)*clhs150 + clhs803;
            lhs(20,26)=DN(5,0)*clhs152 + DN(5,1)*clhs154 + DN(5,2)*clhs156 + clhs804;
            lhs(20,27)=-clhs805;
            lhs(20,28)=DN(5,0)*clhs159 + DN(5,1)*clhs161 + DN(5,2)*clhs163 + clhs808;
            lhs(20,29)=DN(5,0)*clhs167 + DN(5,1)*clhs169 + DN(5,2)*clhs172 + clhs809;
            lhs(20,30)=DN(5,0)*clhs174 + DN(5,1)*clhs176 + DN(5,2)*clhs178 + clhs810;
            lhs(20,31)=-clhs811;
            lhs(21,0)=DN(5,0)*clhs4 + DN(5,1)*clhs181 + DN(5,2)*clhs182 + clhs129;
            lhs(21,1)=DN(5,0)*clhs13 + DN(5,1)*clhs183 + DN(5,2)*clhs185 + clhs252;
            lhs(21,2)=DN(5,0)*clhs21 + DN(5,1)*clhs187 + DN(5,2)*clhs189 + clhs325;
            lhs(21,3)=-clhs366;
            lhs(21,4)=DN(5,0)*clhs28 + DN(5,1)*clhs193 + DN(5,2)*clhs194 + clhs405;
            lhs(21,5)=DN(5,0)*clhs37 + DN(5,1)*clhs196 + DN(5,2)*clhs198 + clhs441;
            lhs(21,6)=DN(5,0)*clhs44 + DN(5,1)*clhs201 + DN(5,2)*clhs203 + clhs473;
            lhs(21,7)=-clhs500;
            lhs(21,8)=DN(5,0)*clhs51 + DN(5,1)*clhs206 + DN(5,2)*clhs207 + clhs533;
            lhs(21,9)=DN(5,0)*clhs59 + DN(5,1)*clhs209 + DN(5,2)*clhs211 + clhs564;
            lhs(21,10)=DN(5,0)*clhs66 + DN(5,1)*clhs214 + DN(5,2)*clhs216 + clhs591;
            lhs(21,11)=-clhs614;
            lhs(21,12)=DN(5,0)*clhs73 + DN(5,1)*clhs219 + DN(5,2)*clhs220 + clhs641;
            lhs(21,13)=DN(5,0)*clhs81 + DN(5,1)*clhs222 + DN(5,2)*clhs224 + clhs667;
            lhs(21,14)=DN(5,0)*clhs88 + DN(5,1)*clhs227 + DN(5,2)*clhs229 + clhs689;
            lhs(21,15)=-clhs708;
            lhs(21,16)=DN(5,0)*clhs95 + DN(5,1)*clhs232 + DN(5,2)*clhs233 + clhs729;
            lhs(21,17)=DN(5,0)*clhs103 + DN(5,1)*clhs235 + DN(5,2)*clhs237 + clhs750;
            lhs(21,18)=DN(5,0)*clhs110 + DN(5,1)*clhs240 + DN(5,2)*clhs242 + clhs767;
            lhs(21,19)=-clhs782;
            lhs(21,20)=DN(5,0)*clhs117 + DN(5,1)*clhs245 + DN(5,2)*clhs246 + clhs796;
            lhs(21,21)=DN(5,0)*clhs125 + DN(5,1)*clhs248 + DN(5,2)*clhs250 + clhs10*clhs812 + clhs793;
            lhs(21,22)=DN(5,0)*clhs132 + DN(5,1)*clhs253 + DN(5,2)*clhs255 + clhs814;
            lhs(21,23)=-clhs815;
            lhs(21,24)=DN(5,0)*clhs139 + DN(5,1)*clhs258 + DN(5,2)*clhs259 + clhs816;
            lhs(21,25)=DN(5,0)*clhs147 + DN(5,1)*clhs261 + DN(5,2)*clhs263 + clhs818;
            lhs(21,26)=DN(5,0)*clhs154 + DN(5,1)*clhs266 + DN(5,2)*clhs268 + clhs819;
            lhs(21,27)=-clhs820;
            lhs(21,28)=DN(5,0)*clhs161 + DN(5,1)*clhs271 + DN(5,2)*clhs272 + clhs821;
            lhs(21,29)=DN(5,0)*clhs169 + DN(5,1)*clhs274 + DN(5,2)*clhs276 + clhs823;
            lhs(21,30)=DN(5,0)*clhs176 + DN(5,1)*clhs279 + DN(5,2)*clhs281 + clhs824;
            lhs(21,31)=-clhs825;
            lhs(22,0)=DN(5,0)*clhs6 + DN(5,1)*clhs182 + DN(5,2)*clhs284 + clhs135;
            lhs(22,1)=DN(5,0)*clhs16 + DN(5,1)*clhs185 + DN(5,2)*clhs285 + clhs256;
            lhs(22,2)=DN(5,0)*clhs23 + DN(5,1)*clhs189 + DN(5,2)*clhs286 + clhs328;
            lhs(22,3)=-clhs367;
            lhs(22,4)=DN(5,0)*clhs30 + DN(5,1)*clhs194 + DN(5,2)*clhs289 + clhs406;
            lhs(22,5)=DN(5,0)*clhs40 + DN(5,1)*clhs198 + DN(5,2)*clhs292 + clhs442;
            lhs(22,6)=DN(5,0)*clhs46 + DN(5,1)*clhs203 + DN(5,2)*clhs294 + clhs475;
            lhs(22,7)=-clhs501;
            lhs(22,8)=DN(5,0)*clhs53 + DN(5,1)*clhs207 + DN(5,2)*clhs298 + clhs534;
            lhs(22,9)=DN(5,0)*clhs62 + DN(5,1)*clhs211 + DN(5,2)*clhs300 + clhs565;
            lhs(22,10)=DN(5,0)*clhs68 + DN(5,1)*clhs216 + DN(5,2)*clhs302 + clhs593;
            lhs(22,11)=-clhs615;
            lhs(22,12)=DN(5,0)*clhs75 + DN(5,1)*clhs220 + DN(5,2)*clhs306 + clhs642;
            lhs(22,13)=DN(5,0)*clhs84 + DN(5,1)*clhs224 + DN(5,2)*clhs308 + clhs668;
            lhs(22,14)=DN(5,0)*clhs90 + DN(5,1)*clhs229 + DN(5,2)*clhs310 + clhs691;
            lhs(22,15)=-clhs709;
            lhs(22,16)=DN(5,0)*clhs97 + DN(5,1)*clhs233 + DN(5,2)*clhs314 + clhs730;
            lhs(22,17)=DN(5,0)*clhs106 + DN(5,1)*clhs237 + DN(5,2)*clhs316 + clhs751;
            lhs(22,18)=DN(5,0)*clhs112 + DN(5,1)*clhs242 + DN(5,2)*clhs318 + clhs769;
            lhs(22,19)=-clhs783;
            lhs(22,20)=DN(5,0)*clhs119 + DN(5,1)*clhs246 + DN(5,2)*clhs322 + clhs797;
            lhs(22,21)=DN(5,0)*clhs128 + DN(5,1)*clhs250 + DN(5,2)*clhs324 + clhs814;
            lhs(22,22)=DN(5,0)*clhs134 + DN(5,1)*clhs255 + DN(5,2)*clhs326 + clhs10*clhs826 + clhs793;
            lhs(22,23)=-clhs827;
            lhs(22,24)=DN(5,0)*clhs141 + DN(5,1)*clhs259 + DN(5,2)*clhs330 + clhs829;
            lhs(22,25)=DN(5,0)*clhs150 + DN(5,1)*clhs263 + DN(5,2)*clhs332 + clhs830;
            lhs(22,26)=DN(5,0)*clhs156 + DN(5,1)*clhs268 + DN(5,2)*clhs334 + clhs832;
            lhs(22,27)=-clhs833;
            lhs(22,28)=DN(5,0)*clhs163 + DN(5,1)*clhs272 + DN(5,2)*clhs338 + clhs834;
            lhs(22,29)=DN(5,0)*clhs172 + DN(5,1)*clhs276 + DN(5,2)*clhs340 + clhs835;
            lhs(22,30)=DN(5,0)*clhs178 + DN(5,1)*clhs281 + DN(5,2)*clhs342 + clhs837;
            lhs(22,31)=-clhs838;
            lhs(23,0)=clhs136 + clhs347*clhs365;
            lhs(23,1)=clhs257 + clhs347*clhs366;
            lhs(23,2)=clhs329 + clhs347*clhs367;
            lhs(23,3)=clhs368;
            lhs(23,4)=clhs347*clhs499 + clhs407;
            lhs(23,5)=clhs347*clhs500 + clhs443;
            lhs(23,6)=clhs347*clhs501 + clhs476;
            lhs(23,7)=clhs502;
            lhs(23,8)=clhs347*clhs613 + clhs535;
            lhs(23,9)=clhs347*clhs614 + clhs566;
            lhs(23,10)=clhs347*clhs615 + clhs594;
            lhs(23,11)=clhs616;
            lhs(23,12)=clhs347*clhs707 + clhs643;
            lhs(23,13)=clhs347*clhs708 + clhs669;
            lhs(23,14)=clhs347*clhs709 + clhs692;
            lhs(23,15)=clhs710;
            lhs(23,16)=clhs347*clhs781 + clhs731;
            lhs(23,17)=clhs347*clhs782 + clhs752;
            lhs(23,18)=clhs347*clhs783 + clhs770;
            lhs(23,19)=clhs784;
            lhs(23,20)=clhs348*clhs798;
            lhs(23,21)=clhs348*clhs815;
            lhs(23,22)=clhs348*clhs827;
            lhs(23,23)=clhs346*(clhs794 + clhs812 + clhs826);
            lhs(23,24)=clhs347*clhs805 + clhs839;
            lhs(23,25)=clhs347*clhs820 + clhs840;
            lhs(23,26)=clhs347*clhs833 + clhs841;
            lhs(23,27)=clhs842;
            lhs(23,28)=clhs347*clhs811 + clhs843;
            lhs(23,29)=clhs347*clhs825 + clhs844;
            lhs(23,30)=clhs347*clhs838 + clhs845;
            lhs(23,31)=clhs846;
            lhs(24,0)=DN(6,0)*clhs2 + DN(6,1)*clhs4 + DN(6,2)*clhs6 + clhs144;
            lhs(24,1)=DN(6,0)*clhs11 + DN(6,1)*clhs13 + DN(6,2)*clhs16 + clhs260;
            lhs(24,2)=DN(6,0)*clhs19 + DN(6,1)*clhs21 + DN(6,2)*clhs23 + clhs331;
            lhs(24,3)=-clhs369;
            lhs(24,4)=DN(6,0)*clhs26 + DN(6,1)*clhs28 + DN(6,2)*clhs30 + clhs410;
            lhs(24,5)=DN(6,0)*clhs35 + DN(6,1)*clhs37 + DN(6,2)*clhs40 + clhs444;
            lhs(24,6)=DN(6,0)*clhs42 + DN(6,1)*clhs44 + DN(6,2)*clhs46 + clhs477;
            lhs(24,7)=-clhs503;
            lhs(24,8)=DN(6,0)*clhs49 + DN(6,1)*clhs51 + DN(6,2)*clhs53 + clhs538;
            lhs(24,9)=DN(6,0)*clhs57 + DN(6,1)*clhs59 + DN(6,2)*clhs62 + clhs567;
            lhs(24,10)=DN(6,0)*clhs64 + DN(6,1)*clhs66 + DN(6,2)*clhs68 + clhs595;
            lhs(24,11)=-clhs617;
            lhs(24,12)=DN(6,0)*clhs71 + DN(6,1)*clhs73 + DN(6,2)*clhs75 + clhs646;
            lhs(24,13)=DN(6,0)*clhs79 + DN(6,1)*clhs81 + DN(6,2)*clhs84 + clhs670;
            lhs(24,14)=DN(6,0)*clhs86 + DN(6,1)*clhs88 + DN(6,2)*clhs90 + clhs693;
            lhs(24,15)=-clhs711;
            lhs(24,16)=DN(6,0)*clhs93 + DN(6,1)*clhs95 + DN(6,2)*clhs97 + clhs734;
            lhs(24,17)=DN(6,0)*clhs101 + DN(6,1)*clhs103 + DN(6,2)*clhs106 + clhs753;
            lhs(24,18)=DN(6,0)*clhs108 + DN(6,1)*clhs110 + DN(6,2)*clhs112 + clhs771;
            lhs(24,19)=-clhs785;
            lhs(24,20)=DN(6,0)*clhs115 + DN(6,1)*clhs117 + DN(6,2)*clhs119 + clhs802;
            lhs(24,21)=DN(6,0)*clhs123 + DN(6,1)*clhs125 + DN(6,2)*clhs128 + clhs816;
            lhs(24,22)=DN(6,0)*clhs130 + DN(6,1)*clhs132 + DN(6,2)*clhs134 + clhs829;
            lhs(24,23)=-clhs839;
            lhs(24,24)=DN(6,0)*clhs137 + DN(6,1)*clhs139 + DN(6,2)*clhs141 + clhs10*clhs848 + clhs847;
            lhs(24,25)=DN(6,0)*clhs145 + DN(6,1)*clhs147 + DN(6,2)*clhs150 + clhs850;
            lhs(24,26)=DN(6,0)*clhs152 + DN(6,1)*clhs154 + DN(6,2)*clhs156 + clhs851;
            lhs(24,27)=-clhs852;
            lhs(24,28)=DN(6,0)*clhs159 + DN(6,1)*clhs161 + DN(6,2)*clhs163 + clhs855;
            lhs(24,29)=DN(6,0)*clhs167 + DN(6,1)*clhs169 + DN(6,2)*clhs172 + clhs856;
            lhs(24,30)=DN(6,0)*clhs174 + DN(6,1)*clhs176 + DN(6,2)*clhs178 + clhs857;
            lhs(24,31)=-clhs858;
            lhs(25,0)=DN(6,0)*clhs4 + DN(6,1)*clhs181 + DN(6,2)*clhs182 + clhs151;
            lhs(25,1)=DN(6,0)*clhs13 + DN(6,1)*clhs183 + DN(6,2)*clhs185 + clhs265;
            lhs(25,2)=DN(6,0)*clhs21 + DN(6,1)*clhs187 + DN(6,2)*clhs189 + clhs333;
            lhs(25,3)=-clhs370;
            lhs(25,4)=DN(6,0)*clhs28 + DN(6,1)*clhs193 + DN(6,2)*clhs194 + clhs411;
            lhs(25,5)=DN(6,0)*clhs37 + DN(6,1)*clhs196 + DN(6,2)*clhs198 + clhs446;
            lhs(25,6)=DN(6,0)*clhs44 + DN(6,1)*clhs201 + DN(6,2)*clhs203 + clhs478;
            lhs(25,7)=-clhs504;
            lhs(25,8)=DN(6,0)*clhs51 + DN(6,1)*clhs206 + DN(6,2)*clhs207 + clhs539;
            lhs(25,9)=DN(6,0)*clhs59 + DN(6,1)*clhs209 + DN(6,2)*clhs211 + clhs569;
            lhs(25,10)=DN(6,0)*clhs66 + DN(6,1)*clhs214 + DN(6,2)*clhs216 + clhs596;
            lhs(25,11)=-clhs618;
            lhs(25,12)=DN(6,0)*clhs73 + DN(6,1)*clhs219 + DN(6,2)*clhs220 + clhs647;
            lhs(25,13)=DN(6,0)*clhs81 + DN(6,1)*clhs222 + DN(6,2)*clhs224 + clhs672;
            lhs(25,14)=DN(6,0)*clhs88 + DN(6,1)*clhs227 + DN(6,2)*clhs229 + clhs694;
            lhs(25,15)=-clhs712;
            lhs(25,16)=DN(6,0)*clhs95 + DN(6,1)*clhs232 + DN(6,2)*clhs233 + clhs735;
            lhs(25,17)=DN(6,0)*clhs103 + DN(6,1)*clhs235 + DN(6,2)*clhs237 + clhs755;
            lhs(25,18)=DN(6,0)*clhs110 + DN(6,1)*clhs240 + DN(6,2)*clhs242 + clhs772;
            lhs(25,19)=-clhs786;
            lhs(25,20)=DN(6,0)*clhs117 + DN(6,1)*clhs245 + DN(6,2)*clhs246 + clhs803;
            lhs(25,21)=DN(6,0)*clhs125 + DN(6,1)*clhs248 + DN(6,2)*clhs250 + clhs818;
            lhs(25,22)=DN(6,0)*clhs132 + DN(6,1)*clhs253 + DN(6,2)*clhs255 + clhs830;
            lhs(25,23)=-clhs840;
            lhs(25,24)=DN(6,0)*clhs139 + DN(6,1)*clhs258 + DN(6,2)*clhs259 + clhs850;
            lhs(25,25)=DN(6,0)*clhs147 + DN(6,1)*clhs261 + DN(6,2)*clhs263 + clhs10*clhs859 + clhs847;
            lhs(25,26)=DN(6,0)*clhs154 + DN(6,1)*clhs266 + DN(6,2)*clhs268 + clhs861;
            lhs(25,27)=-clhs862;
            lhs(25,28)=DN(6,0)*clhs161 + DN(6,1)*clhs271 + DN(6,2)*clhs272 + clhs863;
            lhs(25,29)=DN(6,0)*clhs169 + DN(6,1)*clhs274 + DN(6,2)*clhs276 + clhs865;
            lhs(25,30)=DN(6,0)*clhs176 + DN(6,1)*clhs279 + DN(6,2)*clhs281 + clhs866;
            lhs(25,31)=-clhs867;
            lhs(26,0)=DN(6,0)*clhs6 + DN(6,1)*clhs182 + DN(6,2)*clhs284 + clhs157;
            lhs(26,1)=DN(6,0)*clhs16 + DN(6,1)*clhs185 + DN(6,2)*clhs285 + clhs269;
            lhs(26,2)=DN(6,0)*clhs23 + DN(6,1)*clhs189 + DN(6,2)*clhs286 + clhs336;
            lhs(26,3)=-clhs371;
            lhs(26,4)=DN(6,0)*clhs30 + DN(6,1)*clhs194 + DN(6,2)*clhs289 + clhs412;
            lhs(26,5)=DN(6,0)*clhs40 + DN(6,1)*clhs198 + DN(6,2)*clhs292 + clhs447;
            lhs(26,6)=DN(6,0)*clhs46 + DN(6,1)*clhs203 + DN(6,2)*clhs294 + clhs480;
            lhs(26,7)=-clhs505;
            lhs(26,8)=DN(6,0)*clhs53 + DN(6,1)*clhs207 + DN(6,2)*clhs298 + clhs540;
            lhs(26,9)=DN(6,0)*clhs62 + DN(6,1)*clhs211 + DN(6,2)*clhs300 + clhs570;
            lhs(26,10)=DN(6,0)*clhs68 + DN(6,1)*clhs216 + DN(6,2)*clhs302 + clhs598;
            lhs(26,11)=-clhs619;
            lhs(26,12)=DN(6,0)*clhs75 + DN(6,1)*clhs220 + DN(6,2)*clhs306 + clhs648;
            lhs(26,13)=DN(6,0)*clhs84 + DN(6,1)*clhs224 + DN(6,2)*clhs308 + clhs673;
            lhs(26,14)=DN(6,0)*clhs90 + DN(6,1)*clhs229 + DN(6,2)*clhs310 + clhs696;
            lhs(26,15)=-clhs713;
            lhs(26,16)=DN(6,0)*clhs97 + DN(6,1)*clhs233 + DN(6,2)*clhs314 + clhs736;
            lhs(26,17)=DN(6,0)*clhs106 + DN(6,1)*clhs237 + DN(6,2)*clhs316 + clhs756;
            lhs(26,18)=DN(6,0)*clhs112 + DN(6,1)*clhs242 + DN(6,2)*clhs318 + clhs774;
            lhs(26,19)=-clhs787;
            lhs(26,20)=DN(6,0)*clhs119 + DN(6,1)*clhs246 + DN(6,2)*clhs322 + clhs804;
            lhs(26,21)=DN(6,0)*clhs128 + DN(6,1)*clhs250 + DN(6,2)*clhs324 + clhs819;
            lhs(26,22)=DN(6,0)*clhs134 + DN(6,1)*clhs255 + DN(6,2)*clhs326 + clhs832;
            lhs(26,23)=-clhs841;
            lhs(26,24)=DN(6,0)*clhs141 + DN(6,1)*clhs259 + DN(6,2)*clhs330 + clhs851;
            lhs(26,25)=DN(6,0)*clhs150 + DN(6,1)*clhs263 + DN(6,2)*clhs332 + clhs861;
            lhs(26,26)=DN(6,0)*clhs156 + DN(6,1)*clhs268 + DN(6,2)*clhs334 + clhs10*clhs868 + clhs847;
            lhs(26,27)=-clhs869;
            lhs(26,28)=DN(6,0)*clhs163 + DN(6,1)*clhs272 + DN(6,2)*clhs338 + clhs871;
            lhs(26,29)=DN(6,0)*clhs172 + DN(6,1)*clhs276 + DN(6,2)*clhs340 + clhs872;
            lhs(26,30)=DN(6,0)*clhs178 + DN(6,1)*clhs281 + DN(6,2)*clhs342 + clhs874;
            lhs(26,31)=-clhs875;
            lhs(27,0)=clhs158 + clhs347*clhs369;
            lhs(27,1)=clhs270 + clhs347*clhs370;
            lhs(27,2)=clhs337 + clhs347*clhs371;
            lhs(27,3)=clhs372;
            lhs(27,4)=clhs347*clhs503 + clhs413;
            lhs(27,5)=clhs347*clhs504 + clhs448;
            lhs(27,6)=clhs347*clhs505 + clhs481;
            lhs(27,7)=clhs506;
            lhs(27,8)=clhs347*clhs617 + clhs541;
            lhs(27,9)=clhs347*clhs618 + clhs571;
            lhs(27,10)=clhs347*clhs619 + clhs599;
            lhs(27,11)=clhs620;
            lhs(27,12)=clhs347*clhs711 + clhs649;
            lhs(27,13)=clhs347*clhs712 + clhs674;
            lhs(27,14)=clhs347*clhs713 + clhs697;
            lhs(27,15)=clhs714;
            lhs(27,16)=clhs347*clhs785 + clhs737;
            lhs(27,17)=clhs347*clhs786 + clhs757;
            lhs(27,18)=clhs347*clhs787 + clhs775;
            lhs(27,19)=clhs788;
            lhs(27,20)=clhs347*clhs839 + clhs805;
            lhs(27,21)=clhs347*clhs840 + clhs820;
            lhs(27,22)=clhs347*clhs841 + clhs833;
            lhs(27,23)=clhs842;
            lhs(27,24)=clhs348*clhs852;
            lhs(27,25)=clhs348*clhs862;
            lhs(27,26)=clhs348*clhs869;
            lhs(27,27)=clhs346*(clhs848 + clhs859 + clhs868);
            lhs(27,28)=clhs347*clhs858 + clhs876;
            lhs(27,29)=clhs347*clhs867 + clhs877;
            lhs(27,30)=clhs347*clhs875 + clhs878;
            lhs(27,31)=clhs879;
            lhs(28,0)=DN(7,0)*clhs2 + DN(7,1)*clhs4 + DN(7,2)*clhs6 + clhs166;
            lhs(28,1)=DN(7,0)*clhs11 + DN(7,1)*clhs13 + DN(7,2)*clhs16 + clhs273;
            lhs(28,2)=DN(7,0)*clhs19 + DN(7,1)*clhs21 + DN(7,2)*clhs23 + clhs339;
            lhs(28,3)=-clhs373;
            lhs(28,4)=DN(7,0)*clhs26 + DN(7,1)*clhs28 + DN(7,2)*clhs30 + clhs416;
            lhs(28,5)=DN(7,0)*clhs35 + DN(7,1)*clhs37 + DN(7,2)*clhs40 + clhs449;
            lhs(28,6)=DN(7,0)*clhs42 + DN(7,1)*clhs44 + DN(7,2)*clhs46 + clhs482;
            lhs(28,7)=-clhs507;
            lhs(28,8)=DN(7,0)*clhs49 + DN(7,1)*clhs51 + DN(7,2)*clhs53 + clhs544;
            lhs(28,9)=DN(7,0)*clhs57 + DN(7,1)*clhs59 + DN(7,2)*clhs62 + clhs572;
            lhs(28,10)=DN(7,0)*clhs64 + DN(7,1)*clhs66 + DN(7,2)*clhs68 + clhs600;
            lhs(28,11)=-clhs621;
            lhs(28,12)=DN(7,0)*clhs71 + DN(7,1)*clhs73 + DN(7,2)*clhs75 + clhs652;
            lhs(28,13)=DN(7,0)*clhs79 + DN(7,1)*clhs81 + DN(7,2)*clhs84 + clhs675;
            lhs(28,14)=DN(7,0)*clhs86 + DN(7,1)*clhs88 + DN(7,2)*clhs90 + clhs698;
            lhs(28,15)=-clhs715;
            lhs(28,16)=DN(7,0)*clhs93 + DN(7,1)*clhs95 + DN(7,2)*clhs97 + clhs740;
            lhs(28,17)=DN(7,0)*clhs101 + DN(7,1)*clhs103 + DN(7,2)*clhs106 + clhs758;
            lhs(28,18)=DN(7,0)*clhs108 + DN(7,1)*clhs110 + DN(7,2)*clhs112 + clhs776;
            lhs(28,19)=-clhs789;
            lhs(28,20)=DN(7,0)*clhs115 + DN(7,1)*clhs117 + DN(7,2)*clhs119 + clhs808;
            lhs(28,21)=DN(7,0)*clhs123 + DN(7,1)*clhs125 + DN(7,2)*clhs128 + clhs821;
            lhs(28,22)=DN(7,0)*clhs130 + DN(7,1)*clhs132 + DN(7,2)*clhs134 + clhs834;
            lhs(28,23)=-clhs843;
            lhs(28,24)=DN(7,0)*clhs137 + DN(7,1)*clhs139 + DN(7,2)*clhs141 + clhs855;
            lhs(28,25)=DN(7,0)*clhs145 + DN(7,1)*clhs147 + DN(7,2)*clhs150 + clhs863;
            lhs(28,26)=DN(7,0)*clhs152 + DN(7,1)*clhs154 + DN(7,2)*clhs156 + clhs871;
            lhs(28,27)=-clhs876;
            lhs(28,28)=DN(7,0)*clhs159 + DN(7,1)*clhs161 + DN(7,2)*clhs163 + clhs10*clhs881 + clhs880;
            lhs(28,29)=DN(7,0)*clhs167 + DN(7,1)*clhs169 + DN(7,2)*clhs172 + clhs883;
            lhs(28,30)=DN(7,0)*clhs174 + DN(7,1)*clhs176 + DN(7,2)*clhs178 + clhs884;
            lhs(28,31)=-clhs885;
            lhs(29,0)=DN(7,0)*clhs4 + DN(7,1)*clhs181 + DN(7,2)*clhs182 + clhs173;
            lhs(29,1)=DN(7,0)*clhs13 + DN(7,1)*clhs183 + DN(7,2)*clhs185 + clhs278;
            lhs(29,2)=DN(7,0)*clhs21 + DN(7,1)*clhs187 + DN(7,2)*clhs189 + clhs341;
            lhs(29,3)=-clhs374;
            lhs(29,4)=DN(7,0)*clhs28 + DN(7,1)*clhs193 + DN(7,2)*clhs194 + clhs417;
            lhs(29,5)=DN(7,0)*clhs37 + DN(7,1)*clhs196 + DN(7,2)*clhs198 + clhs451;
            lhs(29,6)=DN(7,0)*clhs44 + DN(7,1)*clhs201 + DN(7,2)*clhs203 + clhs483;
            lhs(29,7)=-clhs508;
            lhs(29,8)=DN(7,0)*clhs51 + DN(7,1)*clhs206 + DN(7,2)*clhs207 + clhs545;
            lhs(29,9)=DN(7,0)*clhs59 + DN(7,1)*clhs209 + DN(7,2)*clhs211 + clhs574;
            lhs(29,10)=DN(7,0)*clhs66 + DN(7,1)*clhs214 + DN(7,2)*clhs216 + clhs601;
            lhs(29,11)=-clhs622;
            lhs(29,12)=DN(7,0)*clhs73 + DN(7,1)*clhs219 + DN(7,2)*clhs220 + clhs653;
            lhs(29,13)=DN(7,0)*clhs81 + DN(7,1)*clhs222 + DN(7,2)*clhs224 + clhs677;
            lhs(29,14)=DN(7,0)*clhs88 + DN(7,1)*clhs227 + DN(7,2)*clhs229 + clhs699;
            lhs(29,15)=-clhs716;
            lhs(29,16)=DN(7,0)*clhs95 + DN(7,1)*clhs232 + DN(7,2)*clhs233 + clhs741;
            lhs(29,17)=DN(7,0)*clhs103 + DN(7,1)*clhs235 + DN(7,2)*clhs237 + clhs760;
            lhs(29,18)=DN(7,0)*clhs110 + DN(7,1)*clhs240 + DN(7,2)*clhs242 + clhs777;
            lhs(29,19)=-clhs790;
            lhs(29,20)=DN(7,0)*clhs117 + DN(7,1)*clhs245 + DN(7,2)*clhs246 + clhs809;
            lhs(29,21)=DN(7,0)*clhs125 + DN(7,1)*clhs248 + DN(7,2)*clhs250 + clhs823;
            lhs(29,22)=DN(7,0)*clhs132 + DN(7,1)*clhs253 + DN(7,2)*clhs255 + clhs835;
            lhs(29,23)=-clhs844;
            lhs(29,24)=DN(7,0)*clhs139 + DN(7,1)*clhs258 + DN(7,2)*clhs259 + clhs856;
            lhs(29,25)=DN(7,0)*clhs147 + DN(7,1)*clhs261 + DN(7,2)*clhs263 + clhs865;
            lhs(29,26)=DN(7,0)*clhs154 + DN(7,1)*clhs266 + DN(7,2)*clhs268 + clhs872;
            lhs(29,27)=-clhs877;
            lhs(29,28)=DN(7,0)*clhs161 + DN(7,1)*clhs271 + DN(7,2)*clhs272 + clhs883;
            lhs(29,29)=DN(7,0)*clhs169 + DN(7,1)*clhs274 + DN(7,2)*clhs276 + clhs10*clhs886 + clhs880;
            lhs(29,30)=DN(7,0)*clhs176 + DN(7,1)*clhs279 + DN(7,2)*clhs281 + clhs887;
            lhs(29,31)=-clhs888;
            lhs(30,0)=DN(7,0)*clhs6 + DN(7,1)*clhs182 + DN(7,2)*clhs284 + clhs179;
            lhs(30,1)=DN(7,0)*clhs16 + DN(7,1)*clhs185 + DN(7,2)*clhs285 + clhs282;
            lhs(30,2)=DN(7,0)*clhs23 + DN(7,1)*clhs189 + DN(7,2)*clhs286 + clhs344;
            lhs(30,3)=-clhs375;
            lhs(30,4)=DN(7,0)*clhs30 + DN(7,1)*clhs194 + DN(7,2)*clhs289 + clhs418;
            lhs(30,5)=DN(7,0)*clhs40 + DN(7,1)*clhs198 + DN(7,2)*clhs292 + clhs452;
            lhs(30,6)=DN(7,0)*clhs46 + DN(7,1)*clhs203 + DN(7,2)*clhs294 + clhs485;
            lhs(30,7)=-clhs509;
            lhs(30,8)=DN(7,0)*clhs53 + DN(7,1)*clhs207 + DN(7,2)*clhs298 + clhs546;
            lhs(30,9)=DN(7,0)*clhs62 + DN(7,1)*clhs211 + DN(7,2)*clhs300 + clhs575;
            lhs(30,10)=DN(7,0)*clhs68 + DN(7,1)*clhs216 + DN(7,2)*clhs302 + clhs603;
            lhs(30,11)=-clhs623;
            lhs(30,12)=DN(7,0)*clhs75 + DN(7,1)*clhs220 + DN(7,2)*clhs306 + clhs654;
            lhs(30,13)=DN(7,0)*clhs84 + DN(7,1)*clhs224 + DN(7,2)*clhs308 + clhs678;
            lhs(30,14)=DN(7,0)*clhs90 + DN(7,1)*clhs229 + DN(7,2)*clhs310 + clhs701;
            lhs(30,15)=-clhs717;
            lhs(30,16)=DN(7,0)*clhs97 + DN(7,1)*clhs233 + DN(7,2)*clhs314 + clhs742;
            lhs(30,17)=DN(7,0)*clhs106 + DN(7,1)*clhs237 + DN(7,2)*clhs316 + clhs761;
            lhs(30,18)=DN(7,0)*clhs112 + DN(7,1)*clhs242 + DN(7,2)*clhs318 + clhs779;
            lhs(30,19)=-clhs791;
            lhs(30,20)=DN(7,0)*clhs119 + DN(7,1)*clhs246 + DN(7,2)*clhs322 + clhs810;
            lhs(30,21)=DN(7,0)*clhs128 + DN(7,1)*clhs250 + DN(7,2)*clhs324 + clhs824;
            lhs(30,22)=DN(7,0)*clhs134 + DN(7,1)*clhs255 + DN(7,2)*clhs326 + clhs837;
            lhs(30,23)=-clhs845;
            lhs(30,24)=DN(7,0)*clhs141 + DN(7,1)*clhs259 + DN(7,2)*clhs330 + clhs857;
            lhs(30,25)=DN(7,0)*clhs150 + DN(7,1)*clhs263 + DN(7,2)*clhs332 + clhs866;
            lhs(30,26)=DN(7,0)*clhs156 + DN(7,1)*clhs268 + DN(7,2)*clhs334 + clhs874;
            lhs(30,27)=-clhs878;
            lhs(30,28)=DN(7,0)*clhs163 + DN(7,1)*clhs272 + DN(7,2)*clhs338 + clhs884;
            lhs(30,29)=DN(7,0)*clhs172 + DN(7,1)*clhs276 + DN(7,2)*clhs340 + clhs887;
            lhs(30,30)=DN(7,0)*clhs178 + DN(7,1)*clhs281 + DN(7,2)*clhs342 + clhs10*clhs889 + clhs880;
            lhs(30,31)=-clhs890;
            lhs(31,0)=clhs180 + clhs347*clhs373;
            lhs(31,1)=clhs283 + clhs347*clhs374;
            lhs(31,2)=clhs345 + clhs347*clhs375;
            lhs(31,3)=clhs376;
            lhs(31,4)=clhs347*clhs507 + clhs419;
            lhs(31,5)=clhs347*clhs508 + clhs453;
            lhs(31,6)=clhs347*clhs509 + clhs486;
            lhs(31,7)=clhs510;
            lhs(31,8)=clhs347*clhs621 + clhs547;
            lhs(31,9)=clhs347*clhs622 + clhs576;
            lhs(31,10)=clhs347*clhs623 + clhs604;
            lhs(31,11)=clhs624;
            lhs(31,12)=clhs347*clhs715 + clhs655;
            lhs(31,13)=clhs347*clhs716 + clhs679;
            lhs(31,14)=clhs347*clhs717 + clhs702;
            lhs(31,15)=clhs718;
            lhs(31,16)=clhs347*clhs789 + clhs743;
            lhs(31,17)=clhs347*clhs790 + clhs762;
            lhs(31,18)=clhs347*clhs791 + clhs780;
            lhs(31,19)=clhs792;
            lhs(31,20)=clhs347*clhs843 + clhs811;
            lhs(31,21)=clhs347*clhs844 + clhs825;
            lhs(31,22)=clhs347*clhs845 + clhs838;
            lhs(31,23)=clhs846;
            lhs(31,24)=clhs347*clhs876 + clhs858;
            lhs(31,25)=clhs347*clhs877 + clhs867;
            lhs(31,26)=clhs347*clhs878 + clhs875;
            lhs(31,27)=clhs879;
            lhs(31,28)=clhs348*clhs885;
            lhs(31,29)=clhs348*clhs888;
            lhs(31,30)=clhs348*clhs890;
            lhs(31,31)=clhs346*(clhs881 + clhs886 + clhs889);


    // Add intermediate results to local system
    noalias(rLHS) += lhs * rData.Weight;
}

template <>
void SymbolicStokes<SymbolicStokesData<2,3>>::ComputeGaussPointRHSContribution(
    SymbolicStokesData<2,3>& rData,
    VectorType& rRHS)
{
    const double rho = rData.Density;
    const double mu = rData.EffectiveViscosity;

    const double h = rData.ElementSize;
    const double dt = rData.DeltaTime;
    const double bdf0 = rData.bdf0;
    const double bdf1 = rData.bdf1;
    const double bdf2 = rData.bdf2;

    const double dyn_tau = rData.DynamicTau;

    const auto& v = rData.Velocity;
    const auto& vn = rData.Velocity_OldStep1;
    const auto& vnn = rData.Velocity_OldStep2;
    const auto& f = rData.BodyForce;
    const auto& p = rData.Pressure;
    const auto& stress = rData.ShearStress;

    // Get shape function values
    const auto& N = rData.N;
    const auto& DN = rData.DN_DX;

    // Stabilization parameters
    constexpr double stab_c1 = 4.0;

    auto& rhs = rData.rhs;

    const double crhs0 =             N[0]*p[0] + N[1]*p[1] + N[2]*p[2];
const double crhs1 =             rho*(N[0]*f(0,0) + N[1]*f(1,0) + N[2]*f(2,0));
const double crhs2 =             rho*(N[0]*(bdf0*v(0,0) + bdf1*vn(0,0) + bdf2*vnn(0,0)) + N[1]*(bdf0*v(1,0) + bdf1*vn(1,0) + bdf2*vnn(1,0)) + N[2]*(bdf0*v(2,0) + bdf1*vn(2,0) + bdf2*vnn(2,0)));
const double crhs3 =             DN(0,0)*v(0,0) + DN(0,1)*v(0,1) + DN(1,0)*v(1,0) + DN(1,1)*v(1,1) + DN(2,0)*v(2,0) + DN(2,1)*v(2,1);
const double crhs4 =             pow(h, 2);
const double crhs5 =             dyn_tau*rho/dt + mu*stab_c1/crhs4;
const double crhs6 =             1.0*crhs3*crhs4*crhs5/stab_c1;
const double crhs7 =             rho*(N[0]*f(0,1) + N[1]*f(1,1) + N[2]*f(2,1));
const double crhs8 =             rho*(N[0]*(bdf0*v(0,1) + bdf1*vn(0,1) + bdf2*vnn(0,1)) + N[1]*(bdf0*v(1,1) + bdf1*vn(1,1) + bdf2*vnn(1,1)) + N[2]*(bdf0*v(2,1) + bdf1*vn(2,1) + bdf2*vnn(2,1)));
const double crhs9 =             1.0/crhs5;
const double crhs10 =             crhs9*(DN(0,0)*p[0] + DN(1,0)*p[1] + DN(2,0)*p[2] - crhs1 + crhs2);
const double crhs11 =             crhs9*(DN(0,1)*p[0] + DN(1,1)*p[1] + DN(2,1)*p[2] - crhs7 + crhs8);
            rhs[0]=DN(0,0)*crhs0 - DN(0,0)*crhs6 - DN(0,0)*stress[0] - DN(0,1)*stress[2] + N[0]*crhs1 - N[0]*crhs2;
            rhs[1]=-DN(0,0)*stress[2] + DN(0,1)*crhs0 - DN(0,1)*crhs6 - DN(0,1)*stress[1] + N[0]*crhs7 - N[0]*crhs8;
            rhs[2]=-DN(0,0)*crhs10 - DN(0,1)*crhs11 - N[0]*crhs3;
            rhs[3]=DN(1,0)*crhs0 - DN(1,0)*crhs6 - DN(1,0)*stress[0] - DN(1,1)*stress[2] + N[1]*crhs1 - N[1]*crhs2;
            rhs[4]=-DN(1,0)*stress[2] + DN(1,1)*crhs0 - DN(1,1)*crhs6 - DN(1,1)*stress[1] + N[1]*crhs7 - N[1]*crhs8;
            rhs[5]=-DN(1,0)*crhs10 - DN(1,1)*crhs11 - N[1]*crhs3;
            rhs[6]=DN(2,0)*crhs0 - DN(2,0)*crhs6 - DN(2,0)*stress[0] - DN(2,1)*stress[2] + N[2]*crhs1 - N[2]*crhs2;
            rhs[7]=-DN(2,0)*stress[2] + DN(2,1)*crhs0 - DN(2,1)*crhs6 - DN(2,1)*stress[1] + N[2]*crhs7 - N[2]*crhs8;
            rhs[8]=-DN(2,0)*crhs10 - DN(2,1)*crhs11 - N[2]*crhs3;


    noalias(rRHS) += rData.Weight * rhs;
}

template <>
void SymbolicStokes<SymbolicStokesData<2,4>>::ComputeGaussPointRHSContribution(
    SymbolicStokesData<2,4>& rData,
    VectorType& rRHS)
{
    const double rho = rData.Density;
    const double mu = rData.EffectiveViscosity;

    const double h = rData.ElementSize;
    const double dt = rData.DeltaTime;
    const double bdf0 = rData.bdf0;
    const double bdf1 = rData.bdf1;
    const double bdf2 = rData.bdf2;

    const double dyn_tau = rData.DynamicTau;

    const auto& v = rData.Velocity;
    const auto& vn = rData.Velocity_OldStep1;
    const auto& vnn = rData.Velocity_OldStep2;
    const auto& f = rData.BodyForce;
    const auto& p = rData.Pressure;
    const auto& stress = rData.ShearStress;

    // Get shape function values
    const auto& N = rData.N;
    const auto& DN = rData.DN_DX;

    // Stabilization parameters
    constexpr double stab_c1 = 4.0;

    auto& rhs = rData.rhs;

    const double crhs0 =             N[0]*p[0] + N[1]*p[1] + N[2]*p[2] + N[3]*p[3];
const double crhs1 =             rho*(N[0]*f(0,0) + N[1]*f(1,0) + N[2]*f(2,0) + N[3]*f(3,0));
const double crhs2 =             DN(0,0)*v(0,0) + DN(0,1)*v(0,1) + DN(1,0)*v(1,0) + DN(1,1)*v(1,1) + DN(2,0)*v(2,0) + DN(2,1)*v(2,1) + DN(3,0)*v(3,0) + DN(3,1)*v(3,1);
const double crhs3 =             pow(h, 2);
const double crhs4 =             dyn_tau*rho/dt + mu*stab_c1/crhs3;
const double crhs5 =             1.0*crhs2*crhs3*crhs4/stab_c1;
const double crhs6 =             rho*(N[0]*(bdf0*v(0,0) + bdf1*vn(0,0) + bdf2*vnn(0,0)) + N[1]*(bdf0*v(1,0) + bdf1*vn(1,0) + bdf2*vnn(1,0)) + N[2]*(bdf0*v(2,0) + bdf1*vn(2,0) + bdf2*vnn(2,0)) + N[3]*(bdf0*v(3,0) + bdf1*vn(3,0) + bdf2*vnn(3,0)));
const double crhs7 =             rho*(N[0]*f(0,1) + N[1]*f(1,1) + N[2]*f(2,1) + N[3]*f(3,1));
const double crhs8 =             rho*(N[0]*(bdf0*v(0,1) + bdf1*vn(0,1) + bdf2*vnn(0,1)) + N[1]*(bdf0*v(1,1) + bdf1*vn(1,1) + bdf2*vnn(1,1)) + N[2]*(bdf0*v(2,1) + bdf1*vn(2,1) + bdf2*vnn(2,1)) + N[3]*(bdf0*v(3,1) + bdf1*vn(3,1) + bdf2*vnn(3,1)));
const double crhs9 =             1.0/crhs4;
const double crhs10 =             crhs9*(DN(0,0)*p[0] + DN(1,0)*p[1] + DN(2,0)*p[2] + DN(3,0)*p[3] - crhs1 + crhs6);
const double crhs11 =             crhs9*(DN(0,1)*p[0] + DN(1,1)*p[1] + DN(2,1)*p[2] + DN(3,1)*p[3] - crhs7 + crhs8);
            rhs[0]=DN(0,0)*crhs0 - DN(0,0)*crhs5 - DN(0,0)*stress[0] - DN(0,1)*stress[2] + N[0]*crhs1 - N[0]*crhs6;
            rhs[1]=-DN(0,0)*stress[2] + DN(0,1)*crhs0 - DN(0,1)*crhs5 - DN(0,1)*stress[1] + N[0]*crhs7 - N[0]*crhs8;
            rhs[2]=-DN(0,0)*crhs10 - DN(0,1)*crhs11 - N[0]*crhs2;
            rhs[3]=DN(1,0)*crhs0 - DN(1,0)*crhs5 - DN(1,0)*stress[0] - DN(1,1)*stress[2] + N[1]*crhs1 - N[1]*crhs6;
            rhs[4]=-DN(1,0)*stress[2] + DN(1,1)*crhs0 - DN(1,1)*crhs5 - DN(1,1)*stress[1] + N[1]*crhs7 - N[1]*crhs8;
            rhs[5]=-DN(1,0)*crhs10 - DN(1,1)*crhs11 - N[1]*crhs2;
            rhs[6]=DN(2,0)*crhs0 - DN(2,0)*crhs5 - DN(2,0)*stress[0] - DN(2,1)*stress[2] + N[2]*crhs1 - N[2]*crhs6;
            rhs[7]=-DN(2,0)*stress[2] + DN(2,1)*crhs0 - DN(2,1)*crhs5 - DN(2,1)*stress[1] + N[2]*crhs7 - N[2]*crhs8;
            rhs[8]=-DN(2,0)*crhs10 - DN(2,1)*crhs11 - N[2]*crhs2;
            rhs[9]=DN(3,0)*crhs0 - DN(3,0)*crhs5 - DN(3,0)*stress[0] - DN(3,1)*stress[2] + N[3]*crhs1 - N[3]*crhs6;
            rhs[10]=-DN(3,0)*stress[2] + DN(3,1)*crhs0 - DN(3,1)*crhs5 - DN(3,1)*stress[1] + N[3]*crhs7 - N[3]*crhs8;
            rhs[11]=-DN(3,0)*crhs10 - DN(3,1)*crhs11 - N[3]*crhs2;


    noalias(rRHS) += rData.Weight * rhs;
}

template <>
void SymbolicStokes<SymbolicStokesData<3,4>>::ComputeGaussPointRHSContribution(
    SymbolicStokesData<3,4>& rData,
    VectorType& rRHS)
{
    const double rho = rData.Density;
    const double mu = rData.EffectiveViscosity;

    const double h = rData.ElementSize;
    const double dt = rData.DeltaTime;
    const double bdf0 = rData.bdf0;
    const double bdf1 = rData.bdf1;
    const double bdf2 = rData.bdf2;

    const double dyn_tau = rData.DynamicTau;

    const auto& v = rData.Velocity;
    const auto& vn = rData.Velocity_OldStep1;
    const auto& vnn = rData.Velocity_OldStep2;
    const auto& f = rData.BodyForce;
    const auto& p = rData.Pressure;
    const auto& stress = rData.ShearStress;

    // Get shape function values
    const auto& N = rData.N;
    const auto& DN = rData.DN_DX;

    // Stabilization parameters
    constexpr double stab_c1 = 4.0;

    auto& rhs = rData.rhs;

    const double crhs0 =             N[0]*p[0] + N[1]*p[1] + N[2]*p[2] + N[3]*p[3];
const double crhs1 =             rho*(N[0]*f(0,0) + N[1]*f(1,0) + N[2]*f(2,0) + N[3]*f(3,0));
const double crhs2 =             rho*(N[0]*(bdf0*v(0,0) + bdf1*vn(0,0) + bdf2*vnn(0,0)) + N[1]*(bdf0*v(1,0) + bdf1*vn(1,0) + bdf2*vnn(1,0)) + N[2]*(bdf0*v(2,0) + bdf1*vn(2,0) + bdf2*vnn(2,0)) + N[3]*(bdf0*v(3,0) + bdf1*vn(3,0) + bdf2*vnn(3,0)));
const double crhs3 =             DN(0,0)*v(0,0) + DN(0,1)*v(0,1) + DN(0,2)*v(0,2) + DN(1,0)*v(1,0) + DN(1,1)*v(1,1) + DN(1,2)*v(1,2) + DN(2,0)*v(2,0) + DN(2,1)*v(2,1) + DN(2,2)*v(2,2) + DN(3,0)*v(3,0) + DN(3,1)*v(3,1) + DN(3,2)*v(3,2);
const double crhs4 =             pow(h, 2);
const double crhs5 =             dyn_tau*rho/dt + mu*stab_c1/crhs4;
const double crhs6 =             1.0*crhs3*crhs4*crhs5/stab_c1;
const double crhs7 =             rho*(N[0]*f(0,1) + N[1]*f(1,1) + N[2]*f(2,1) + N[3]*f(3,1));
const double crhs8 =             rho*(N[0]*(bdf0*v(0,1) + bdf1*vn(0,1) + bdf2*vnn(0,1)) + N[1]*(bdf0*v(1,1) + bdf1*vn(1,1) + bdf2*vnn(1,1)) + N[2]*(bdf0*v(2,1) + bdf1*vn(2,1) + bdf2*vnn(2,1)) + N[3]*(bdf0*v(3,1) + bdf1*vn(3,1) + bdf2*vnn(3,1)));
const double crhs9 =             rho*(N[0]*f(0,2) + N[1]*f(1,2) + N[2]*f(2,2) + N[3]*f(3,2));
const double crhs10 =             rho*(N[0]*(bdf0*v(0,2) + bdf1*vn(0,2) + bdf2*vnn(0,2)) + N[1]*(bdf0*v(1,2) + bdf1*vn(1,2) + bdf2*vnn(1,2)) + N[2]*(bdf0*v(2,2) + bdf1*vn(2,2) + bdf2*vnn(2,2)) + N[3]*(bdf0*v(3,2) + bdf1*vn(3,2) + bdf2*vnn(3,2)));
const double crhs11 =             1.0/crhs5;
const double crhs12 =             crhs11*(DN(0,0)*p[0] + DN(1,0)*p[1] + DN(2,0)*p[2] + DN(3,0)*p[3] - crhs1 + crhs2);
const double crhs13 =             crhs11*(DN(0,1)*p[0] + DN(1,1)*p[1] + DN(2,1)*p[2] + DN(3,1)*p[3] - crhs7 + crhs8);
const double crhs14 =             crhs11*(DN(0,2)*p[0] + DN(1,2)*p[1] + DN(2,2)*p[2] + DN(3,2)*p[3] + crhs10 - crhs9);
            rhs[0]=DN(0,0)*crhs0 - DN(0,0)*crhs6 - DN(0,0)*stress[0] - DN(0,1)*stress[3] - DN(0,2)*stress[5] + N[0]*crhs1 - N[0]*crhs2;
            rhs[1]=-DN(0,0)*stress[3] + DN(0,1)*crhs0 - DN(0,1)*crhs6 - DN(0,1)*stress[1] - DN(0,2)*stress[4] + N[0]*crhs7 - N[0]*crhs8;
            rhs[2]=-DN(0,0)*stress[5] - DN(0,1)*stress[4] + DN(0,2)*crhs0 - DN(0,2)*crhs6 - DN(0,2)*stress[2] - N[0]*crhs10 + N[0]*crhs9;
            rhs[3]=-DN(0,0)*crhs12 - DN(0,1)*crhs13 - DN(0,2)*crhs14 - N[0]*crhs3;
            rhs[4]=DN(1,0)*crhs0 - DN(1,0)*crhs6 - DN(1,0)*stress[0] - DN(1,1)*stress[3] - DN(1,2)*stress[5] + N[1]*crhs1 - N[1]*crhs2;
            rhs[5]=-DN(1,0)*stress[3] + DN(1,1)*crhs0 - DN(1,1)*crhs6 - DN(1,1)*stress[1] - DN(1,2)*stress[4] + N[1]*crhs7 - N[1]*crhs8;
            rhs[6]=-DN(1,0)*stress[5] - DN(1,1)*stress[4] + DN(1,2)*crhs0 - DN(1,2)*crhs6 - DN(1,2)*stress[2] - N[1]*crhs10 + N[1]*crhs9;
            rhs[7]=-DN(1,0)*crhs12 - DN(1,1)*crhs13 - DN(1,2)*crhs14 - N[1]*crhs3;
            rhs[8]=DN(2,0)*crhs0 - DN(2,0)*crhs6 - DN(2,0)*stress[0] - DN(2,1)*stress[3] - DN(2,2)*stress[5] + N[2]*crhs1 - N[2]*crhs2;
            rhs[9]=-DN(2,0)*stress[3] + DN(2,1)*crhs0 - DN(2,1)*crhs6 - DN(2,1)*stress[1] - DN(2,2)*stress[4] + N[2]*crhs7 - N[2]*crhs8;
            rhs[10]=-DN(2,0)*stress[5] - DN(2,1)*stress[4] + DN(2,2)*crhs0 - DN(2,2)*crhs6 - DN(2,2)*stress[2] - N[2]*crhs10 + N[2]*crhs9;
            rhs[11]=-DN(2,0)*crhs12 - DN(2,1)*crhs13 - DN(2,2)*crhs14 - N[2]*crhs3;
            rhs[12]=DN(3,0)*crhs0 - DN(3,0)*crhs6 - DN(3,0)*stress[0] - DN(3,1)*stress[3] - DN(3,2)*stress[5] + N[3]*crhs1 - N[3]*crhs2;
            rhs[13]=-DN(3,0)*stress[3] + DN(3,1)*crhs0 - DN(3,1)*crhs6 - DN(3,1)*stress[1] - DN(3,2)*stress[4] + N[3]*crhs7 - N[3]*crhs8;
            rhs[14]=-DN(3,0)*stress[5] - DN(3,1)*stress[4] + DN(3,2)*crhs0 - DN(3,2)*crhs6 - DN(3,2)*stress[2] - N[3]*crhs10 + N[3]*crhs9;
            rhs[15]=-DN(3,0)*crhs12 - DN(3,1)*crhs13 - DN(3,2)*crhs14 - N[3]*crhs3;


    noalias(rRHS) += rData.Weight * rhs;
}

template <>
void SymbolicStokes<SymbolicStokesData<3,6>>::ComputeGaussPointRHSContribution(
    SymbolicStokesData<3,6>& rData,
    VectorType& rRHS)
{
    const double rho = rData.Density;
    const double mu = rData.EffectiveViscosity;

    const double h = rData.ElementSize;
    const double dt = rData.DeltaTime;
    const double bdf0 = rData.bdf0;
    const double bdf1 = rData.bdf1;
    const double bdf2 = rData.bdf2;

    const double dyn_tau = rData.DynamicTau;

    const auto& v = rData.Velocity;
    const auto& vn = rData.Velocity_OldStep1;
    const auto& vnn = rData.Velocity_OldStep2;
    const auto& f = rData.BodyForce;
    const auto& p = rData.Pressure;
    const auto& stress = rData.ShearStress;

    // Get shape function values
    const auto& N = rData.N;
    const auto& DN = rData.DN_DX;

    // Stabilization parameters
    constexpr double stab_c1 = 4.0;

    auto& rhs = rData.rhs;

    const double crhs0 =             N[0]*p[0] + N[1]*p[1] + N[2]*p[2] + N[3]*p[3] + N[4]*p[4] + N[5]*p[5];
const double crhs1 =             rho*(N[0]*f(0,0) + N[1]*f(1,0) + N[2]*f(2,0) + N[3]*f(3,0) + N[4]*f(4,0) + N[5]*f(5,0));
const double crhs2 =             rho*(N[0]*(bdf0*v(0,0) + bdf1*vn(0,0) + bdf2*vnn(0,0)) + N[1]*(bdf0*v(1,0) + bdf1*vn(1,0) + bdf2*vnn(1,0)) + N[2]*(bdf0*v(2,0) + bdf1*vn(2,0) + bdf2*vnn(2,0)) + N[3]*(bdf0*v(3,0) + bdf1*vn(3,0) + bdf2*vnn(3,0)) + N[4]*(bdf0*v(4,0) + bdf1*vn(4,0) + bdf2*vnn(4,0)) + N[5]*(bdf0*v(5,0) + bdf1*vn(5,0) + bdf2*vnn(5,0)));
const double crhs3 =             DN(0,0)*v(0,0) + DN(0,1)*v(0,1) + DN(0,2)*v(0,2) + DN(1,0)*v(1,0) + DN(1,1)*v(1,1) + DN(1,2)*v(1,2) + DN(2,0)*v(2,0) + DN(2,1)*v(2,1) + DN(2,2)*v(2,2) + DN(3,0)*v(3,0) + DN(3,1)*v(3,1) + DN(3,2)*v(3,2) + DN(4,0)*v(4,0) + DN(4,1)*v(4,1) + DN(4,2)*v(4,2) + DN(5,0)*v(5,0) + DN(5,1)*v(5,1) + DN(5,2)*v(5,2);
const double crhs4 =             pow(h, 2);
const double crhs5 =             dyn_tau*rho/dt + mu*stab_c1/crhs4;
const double crhs6 =             1.0*crhs3*crhs4*crhs5/stab_c1;
const double crhs7 =             rho*(N[0]*f(0,1) + N[1]*f(1,1) + N[2]*f(2,1) + N[3]*f(3,1) + N[4]*f(4,1) + N[5]*f(5,1));
const double crhs8 =             rho*(N[0]*(bdf0*v(0,1) + bdf1*vn(0,1) + bdf2*vnn(0,1)) + N[1]*(bdf0*v(1,1) + bdf1*vn(1,1) + bdf2*vnn(1,1)) + N[2]*(bdf0*v(2,1) + bdf1*vn(2,1) + bdf2*vnn(2,1)) + N[3]*(bdf0*v(3,1) + bdf1*vn(3,1) + bdf2*vnn(3,1)) + N[4]*(bdf0*v(4,1) + bdf1*vn(4,1) + bdf2*vnn(4,1)) + N[5]*(bdf0*v(5,1) + bdf1*vn(5,1) + bdf2*vnn(5,1)));
const double crhs9 =             rho*(N[0]*f(0,2) + N[1]*f(1,2) + N[2]*f(2,2) + N[3]*f(3,2) + N[4]*f(4,2) + N[5]*f(5,2));
const double crhs10 =             rho*(N[0]*(bdf0*v(0,2) + bdf1*vn(0,2) + bdf2*vnn(0,2)) + N[1]*(bdf0*v(1,2) + bdf1*vn(1,2) + bdf2*vnn(1,2)) + N[2]*(bdf0*v(2,2) + bdf1*vn(2,2) + bdf2*vnn(2,2)) + N[3]*(bdf0*v(3,2) + bdf1*vn(3,2) + bdf2*vnn(3,2)) + N[4]*(bdf0*v(4,2) + bdf1*vn(4,2) + bdf2*vnn(4,2)) + N[5]*(bdf0*v(5,2) + bdf1*vn(5,2) + bdf2*vnn(5,2)));
const double crhs11 =             1.0/crhs5;
const double crhs12 =             crhs11*(DN(0,0)*p[0] + DN(1,0)*p[1] + DN(2,0)*p[2] + DN(3,0)*p[3] + DN(4,0)*p[4] + DN(5,0)*p[5] - crhs1 + crhs2);
const double crhs13 =             crhs11*(DN(0,1)*p[0] + DN(1,1)*p[1] + DN(2,1)*p[2] + DN(3,1)*p[3] + DN(4,1)*p[4] + DN(5,1)*p[5] - crhs7 + crhs8);
const double crhs14 =             crhs11*(DN(0,2)*p[0] + DN(1,2)*p[1] + DN(2,2)*p[2] + DN(3,2)*p[3] + DN(4,2)*p[4] + DN(5,2)*p[5] + crhs10 - crhs9);
            rhs[0]=DN(0,0)*crhs0 - DN(0,0)*crhs6 - DN(0,0)*stress[0] - DN(0,1)*stress[3] - DN(0,2)*stress[5] + N[0]*crhs1 - N[0]*crhs2;
            rhs[1]=-DN(0,0)*stress[3] + DN(0,1)*crhs0 - DN(0,1)*crhs6 - DN(0,1)*stress[1] - DN(0,2)*stress[4] + N[0]*crhs7 - N[0]*crhs8;
            rhs[2]=-DN(0,0)*stress[5] - DN(0,1)*stress[4] + DN(0,2)*crhs0 - DN(0,2)*crhs6 - DN(0,2)*stress[2] - N[0]*crhs10 + N[0]*crhs9;
            rhs[3]=-DN(0,0)*crhs12 - DN(0,1)*crhs13 - DN(0,2)*crhs14 - N[0]*crhs3;
            rhs[4]=DN(1,0)*crhs0 - DN(1,0)*crhs6 - DN(1,0)*stress[0] - DN(1,1)*stress[3] - DN(1,2)*stress[5] + N[1]*crhs1 - N[1]*crhs2;
            rhs[5]=-DN(1,0)*stress[3] + DN(1,1)*crhs0 - DN(1,1)*crhs6 - DN(1,1)*stress[1] - DN(1,2)*stress[4] + N[1]*crhs7 - N[1]*crhs8;
            rhs[6]=-DN(1,0)*stress[5] - DN(1,1)*stress[4] + DN(1,2)*crhs0 - DN(1,2)*crhs6 - DN(1,2)*stress[2] - N[1]*crhs10 + N[1]*crhs9;
            rhs[7]=-DN(1,0)*crhs12 - DN(1,1)*crhs13 - DN(1,2)*crhs14 - N[1]*crhs3;
            rhs[8]=DN(2,0)*crhs0 - DN(2,0)*crhs6 - DN(2,0)*stress[0] - DN(2,1)*stress[3] - DN(2,2)*stress[5] + N[2]*crhs1 - N[2]*crhs2;
            rhs[9]=-DN(2,0)*stress[3] + DN(2,1)*crhs0 - DN(2,1)*crhs6 - DN(2,1)*stress[1] - DN(2,2)*stress[4] + N[2]*crhs7 - N[2]*crhs8;
            rhs[10]=-DN(2,0)*stress[5] - DN(2,1)*stress[4] + DN(2,2)*crhs0 - DN(2,2)*crhs6 - DN(2,2)*stress[2] - N[2]*crhs10 + N[2]*crhs9;
            rhs[11]=-DN(2,0)*crhs12 - DN(2,1)*crhs13 - DN(2,2)*crhs14 - N[2]*crhs3;
            rhs[12]=DN(3,0)*crhs0 - DN(3,0)*crhs6 - DN(3,0)*stress[0] - DN(3,1)*stress[3] - DN(3,2)*stress[5] + N[3]*crhs1 - N[3]*crhs2;
            rhs[13]=-DN(3,0)*stress[3] + DN(3,1)*crhs0 - DN(3,1)*crhs6 - DN(3,1)*stress[1] - DN(3,2)*stress[4] + N[3]*crhs7 - N[3]*crhs8;
            rhs[14]=-DN(3,0)*stress[5] - DN(3,1)*stress[4] + DN(3,2)*crhs0 - DN(3,2)*crhs6 - DN(3,2)*stress[2] - N[3]*crhs10 + N[3]*crhs9;
            rhs[15]=-DN(3,0)*crhs12 - DN(3,1)*crhs13 - DN(3,2)*crhs14 - N[3]*crhs3;
            rhs[16]=DN(4,0)*crhs0 - DN(4,0)*crhs6 - DN(4,0)*stress[0] - DN(4,1)*stress[3] - DN(4,2)*stress[5] + N[4]*crhs1 - N[4]*crhs2;
            rhs[17]=-DN(4,0)*stress[3] + DN(4,1)*crhs0 - DN(4,1)*crhs6 - DN(4,1)*stress[1] - DN(4,2)*stress[4] + N[4]*crhs7 - N[4]*crhs8;
            rhs[18]=-DN(4,0)*stress[5] - DN(4,1)*stress[4] + DN(4,2)*crhs0 - DN(4,2)*crhs6 - DN(4,2)*stress[2] - N[4]*crhs10 + N[4]*crhs9;
            rhs[19]=-DN(4,0)*crhs12 - DN(4,1)*crhs13 - DN(4,2)*crhs14 - N[4]*crhs3;
            rhs[20]=DN(5,0)*crhs0 - DN(5,0)*crhs6 - DN(5,0)*stress[0] - DN(5,1)*stress[3] - DN(5,2)*stress[5] + N[5]*crhs1 - N[5]*crhs2;
            rhs[21]=-DN(5,0)*stress[3] + DN(5,1)*crhs0 - DN(5,1)*crhs6 - DN(5,1)*stress[1] - DN(5,2)*stress[4] + N[5]*crhs7 - N[5]*crhs8;
            rhs[22]=-DN(5,0)*stress[5] - DN(5,1)*stress[4] + DN(5,2)*crhs0 - DN(5,2)*crhs6 - DN(5,2)*stress[2] - N[5]*crhs10 + N[5]*crhs9;
            rhs[23]=-DN(5,0)*crhs12 - DN(5,1)*crhs13 - DN(5,2)*crhs14 - N[5]*crhs3;


    noalias(rRHS) += rData.Weight * rhs;
}

template <>
void SymbolicStokes<SymbolicStokesData<3,8>>::ComputeGaussPointRHSContribution(
    SymbolicStokesData<3,8>& rData,
    VectorType& rRHS)
{
    const double rho = rData.Density;
    const double mu = rData.EffectiveViscosity;

    const double h = rData.ElementSize;
    const double dt = rData.DeltaTime;
    const double bdf0 = rData.bdf0;
    const double bdf1 = rData.bdf1;
    const double bdf2 = rData.bdf2;

    const double dyn_tau = rData.DynamicTau;

    const auto& v = rData.Velocity;
    const auto& vn = rData.Velocity_OldStep1;
    const auto& vnn = rData.Velocity_OldStep2;
    const auto& f = rData.BodyForce;
    const auto& p = rData.Pressure;
    const auto& stress = rData.ShearStress;

    // Get shape function values
    const auto& N = rData.N;
    const auto& DN = rData.DN_DX;

    // Stabilization parameters
    constexpr double stab_c1 = 4.0;

    auto& rhs = rData.rhs;

    const double crhs0 =             N[0]*p[0] + N[1]*p[1] + N[2]*p[2] + N[3]*p[3] + N[4]*p[4] + N[5]*p[5] + N[6]*p[6] + N[7]*p[7];
const double crhs1 =             rho*(N[0]*f(0,0) + N[1]*f(1,0) + N[2]*f(2,0) + N[3]*f(3,0) + N[4]*f(4,0) + N[5]*f(5,0) + N[6]*f(6,0) + N[7]*f(7,0));
const double crhs2 =             DN(0,0)*v(0,0) + DN(0,1)*v(0,1) + DN(0,2)*v(0,2) + DN(1,0)*v(1,0) + DN(1,1)*v(1,1) + DN(1,2)*v(1,2) + DN(2,0)*v(2,0) + DN(2,1)*v(2,1) + DN(2,2)*v(2,2) + DN(3,0)*v(3,0) + DN(3,1)*v(3,1) + DN(3,2)*v(3,2) + DN(4,0)*v(4,0) + DN(4,1)*v(4,1) + DN(4,2)*v(4,2) + DN(5,0)*v(5,0) + DN(5,1)*v(5,1) + DN(5,2)*v(5,2) + DN(6,0)*v(6,0) + DN(6,1)*v(6,1) + DN(6,2)*v(6,2) + DN(7,0)*v(7,0) + DN(7,1)*v(7,1) + DN(7,2)*v(7,2);
const double crhs3 =             pow(h, 2);
const double crhs4 =             dyn_tau*rho/dt + mu*stab_c1/crhs3;
const double crhs5 =             1.0*crhs2*crhs3*crhs4/stab_c1;
const double crhs6 =             rho*(N[0]*(bdf0*v(0,0) + bdf1*vn(0,0) + bdf2*vnn(0,0)) + N[1]*(bdf0*v(1,0) + bdf1*vn(1,0) + bdf2*vnn(1,0)) + N[2]*(bdf0*v(2,0) + bdf1*vn(2,0) + bdf2*vnn(2,0)) + N[3]*(bdf0*v(3,0) + bdf1*vn(3,0) + bdf2*vnn(3,0)) + N[4]*(bdf0*v(4,0) + bdf1*vn(4,0) + bdf2*vnn(4,0)) + N[5]*(bdf0*v(5,0) + bdf1*vn(5,0) + bdf2*vnn(5,0)) + N[6]*(bdf0*v(6,0) + bdf1*vn(6,0) + bdf2*vnn(6,0)) + N[7]*(bdf0*v(7,0) + bdf1*vn(7,0) + bdf2*vnn(7,0)));
const double crhs7 =             rho*(N[0]*f(0,1) + N[1]*f(1,1) + N[2]*f(2,1) + N[3]*f(3,1) + N[4]*f(4,1) + N[5]*f(5,1) + N[6]*f(6,1) + N[7]*f(7,1));
const double crhs8 =             rho*(N[0]*(bdf0*v(0,1) + bdf1*vn(0,1) + bdf2*vnn(0,1)) + N[1]*(bdf0*v(1,1) + bdf1*vn(1,1) + bdf2*vnn(1,1)) + N[2]*(bdf0*v(2,1) + bdf1*vn(2,1) + bdf2*vnn(2,1)) + N[3]*(bdf0*v(3,1) + bdf1*vn(3,1) + bdf2*vnn(3,1)) + N[4]*(bdf0*v(4,1) + bdf1*vn(4,1) + bdf2*vnn(4,1)) + N[5]*(bdf0*v(5,1) + bdf1*vn(5,1) + bdf2*vnn(5,1)) + N[6]*(bdf0*v(6,1) + bdf1*vn(6,1) + bdf2*vnn(6,1)) + N[7]*(bdf0*v(7,1) + bdf1*vn(7,1) + bdf2*vnn(7,1)));
const double crhs9 =             rho*(N[0]*f(0,2) + N[1]*f(1,2) + N[2]*f(2,2) + N[3]*f(3,2) + N[4]*f(4,2) + N[5]*f(5,2) + N[6]*f(6,2) + N[7]*f(7,2));
const double crhs10 =             rho*(N[0]*(bdf0*v(0,2) + bdf1*vn(0,2) + bdf2*vnn(0,2)) + N[1]*(bdf0*v(1,2) + bdf1*vn(1,2) + bdf2*vnn(1,2)) + N[2]*(bdf0*v(2,2) + bdf1*vn(2,2) + bdf2*vnn(2,2)) + N[3]*(bdf0*v(3,2) + bdf1*vn(3,2) + bdf2*vnn(3,2)) + N[4]*(bdf0*v(4,2) + bdf1*vn(4,2) + bdf2*vnn(4,2)) + N[5]*(bdf0*v(5,2) + bdf1*vn(5,2) + bdf2*vnn(5,2)) + N[6]*(bdf0*v(6,2) + bdf1*vn(6,2) + bdf2*vnn(6,2)) + N[7]*(bdf0*v(7,2) + bdf1*vn(7,2) + bdf2*vnn(7,2)));
const double crhs11 =             1.0/crhs4;
const double crhs12 =             crhs11*(DN(0,0)*p[0] + DN(1,0)*p[1] + DN(2,0)*p[2] + DN(3,0)*p[3] + DN(4,0)*p[4] + DN(5,0)*p[5] + DN(6,0)*p[6] + DN(7,0)*p[7] - crhs1 + crhs6);
const double crhs13 =             crhs11*(DN(0,1)*p[0] + DN(1,1)*p[1] + DN(2,1)*p[2] + DN(3,1)*p[3] + DN(4,1)*p[4] + DN(5,1)*p[5] + DN(6,1)*p[6] + DN(7,1)*p[7] - crhs7 + crhs8);
const double crhs14 =             crhs11*(DN(0,2)*p[0] + DN(1,2)*p[1] + DN(2,2)*p[2] + DN(3,2)*p[3] + DN(4,2)*p[4] + DN(5,2)*p[5] + DN(6,2)*p[6] + DN(7,2)*p[7] + crhs10 - crhs9);
            rhs[0]=DN(0,0)*crhs0 - DN(0,0)*crhs5 - DN(0,0)*stress[0] - DN(0,1)*stress[3] - DN(0,2)*stress[5] + N[0]*crhs1 - N[0]*crhs6;
            rhs[1]=-DN(0,0)*stress[3] + DN(0,1)*crhs0 - DN(0,1)*crhs5 - DN(0,1)*stress[1] - DN(0,2)*stress[4] + N[0]*crhs7 - N[0]*crhs8;
            rhs[2]=-DN(0,0)*stress[5] - DN(0,1)*stress[4] + DN(0,2)*crhs0 - DN(0,2)*crhs5 - DN(0,2)*stress[2] - N[0]*crhs10 + N[0]*crhs9;
            rhs[3]=-DN(0,0)*crhs12 - DN(0,1)*crhs13 - DN(0,2)*crhs14 - N[0]*crhs2;
            rhs[4]=DN(1,0)*crhs0 - DN(1,0)*crhs5 - DN(1,0)*stress[0] - DN(1,1)*stress[3] - DN(1,2)*stress[5] + N[1]*crhs1 - N[1]*crhs6;
            rhs[5]=-DN(1,0)*stress[3] + DN(1,1)*crhs0 - DN(1,1)*crhs5 - DN(1,1)*stress[1] - DN(1,2)*stress[4] + N[1]*crhs7 - N[1]*crhs8;
            rhs[6]=-DN(1,0)*stress[5] - DN(1,1)*stress[4] + DN(1,2)*crhs0 - DN(1,2)*crhs5 - DN(1,2)*stress[2] - N[1]*crhs10 + N[1]*crhs9;
            rhs[7]=-DN(1,0)*crhs12 - DN(1,1)*crhs13 - DN(1,2)*crhs14 - N[1]*crhs2;
            rhs[8]=DN(2,0)*crhs0 - DN(2,0)*crhs5 - DN(2,0)*stress[0] - DN(2,1)*stress[3] - DN(2,2)*stress[5] + N[2]*crhs1 - N[2]*crhs6;
            rhs[9]=-DN(2,0)*stress[3] + DN(2,1)*crhs0 - DN(2,1)*crhs5 - DN(2,1)*stress[1] - DN(2,2)*stress[4] + N[2]*crhs7 - N[2]*crhs8;
            rhs[10]=-DN(2,0)*stress[5] - DN(2,1)*stress[4] + DN(2,2)*crhs0 - DN(2,2)*crhs5 - DN(2,2)*stress[2] - N[2]*crhs10 + N[2]*crhs9;
            rhs[11]=-DN(2,0)*crhs12 - DN(2,1)*crhs13 - DN(2,2)*crhs14 - N[2]*crhs2;
            rhs[12]=DN(3,0)*crhs0 - DN(3,0)*crhs5 - DN(3,0)*stress[0] - DN(3,1)*stress[3] - DN(3,2)*stress[5] + N[3]*crhs1 - N[3]*crhs6;
            rhs[13]=-DN(3,0)*stress[3] + DN(3,1)*crhs0 - DN(3,1)*crhs5 - DN(3,1)*stress[1] - DN(3,2)*stress[4] + N[3]*crhs7 - N[3]*crhs8;
            rhs[14]=-DN(3,0)*stress[5] - DN(3,1)*stress[4] + DN(3,2)*crhs0 - DN(3,2)*crhs5 - DN(3,2)*stress[2] - N[3]*crhs10 + N[3]*crhs9;
            rhs[15]=-DN(3,0)*crhs12 - DN(3,1)*crhs13 - DN(3,2)*crhs14 - N[3]*crhs2;
            rhs[16]=DN(4,0)*crhs0 - DN(4,0)*crhs5 - DN(4,0)*stress[0] - DN(4,1)*stress[3] - DN(4,2)*stress[5] + N[4]*crhs1 - N[4]*crhs6;
            rhs[17]=-DN(4,0)*stress[3] + DN(4,1)*crhs0 - DN(4,1)*crhs5 - DN(4,1)*stress[1] - DN(4,2)*stress[4] + N[4]*crhs7 - N[4]*crhs8;
            rhs[18]=-DN(4,0)*stress[5] - DN(4,1)*stress[4] + DN(4,2)*crhs0 - DN(4,2)*crhs5 - DN(4,2)*stress[2] - N[4]*crhs10 + N[4]*crhs9;
            rhs[19]=-DN(4,0)*crhs12 - DN(4,1)*crhs13 - DN(4,2)*crhs14 - N[4]*crhs2;
            rhs[20]=DN(5,0)*crhs0 - DN(5,0)*crhs5 - DN(5,0)*stress[0] - DN(5,1)*stress[3] - DN(5,2)*stress[5] + N[5]*crhs1 - N[5]*crhs6;
            rhs[21]=-DN(5,0)*stress[3] + DN(5,1)*crhs0 - DN(5,1)*crhs5 - DN(5,1)*stress[1] - DN(5,2)*stress[4] + N[5]*crhs7 - N[5]*crhs8;
            rhs[22]=-DN(5,0)*stress[5] - DN(5,1)*stress[4] + DN(5,2)*crhs0 - DN(5,2)*crhs5 - DN(5,2)*stress[2] - N[5]*crhs10 + N[5]*crhs9;
            rhs[23]=-DN(5,0)*crhs12 - DN(5,1)*crhs13 - DN(5,2)*crhs14 - N[5]*crhs2;
            rhs[24]=DN(6,0)*crhs0 - DN(6,0)*crhs5 - DN(6,0)*stress[0] - DN(6,1)*stress[3] - DN(6,2)*stress[5] + N[6]*crhs1 - N[6]*crhs6;
            rhs[25]=-DN(6,0)*stress[3] + DN(6,1)*crhs0 - DN(6,1)*crhs5 - DN(6,1)*stress[1] - DN(6,2)*stress[4] + N[6]*crhs7 - N[6]*crhs8;
            rhs[26]=-DN(6,0)*stress[5] - DN(6,1)*stress[4] + DN(6,2)*crhs0 - DN(6,2)*crhs5 - DN(6,2)*stress[2] - N[6]*crhs10 + N[6]*crhs9;
            rhs[27]=-DN(6,0)*crhs12 - DN(6,1)*crhs13 - DN(6,2)*crhs14 - N[6]*crhs2;
            rhs[28]=DN(7,0)*crhs0 - DN(7,0)*crhs5 - DN(7,0)*stress[0] - DN(7,1)*stress[3] - DN(7,2)*stress[5] + N[7]*crhs1 - N[7]*crhs6;
            rhs[29]=-DN(7,0)*stress[3] + DN(7,1)*crhs0 - DN(7,1)*crhs5 - DN(7,1)*stress[1] - DN(7,2)*stress[4] + N[7]*crhs7 - N[7]*crhs8;
            rhs[30]=-DN(7,0)*stress[5] - DN(7,1)*stress[4] + DN(7,2)*crhs0 - DN(7,2)*crhs5 - DN(7,2)*stress[2] - N[7]*crhs10 + N[7]*crhs9;
            rhs[31]=-DN(7,0)*crhs12 - DN(7,1)*crhs13 - DN(7,2)*crhs14 - N[7]*crhs2;


    noalias(rRHS) += rData.Weight * rhs;
}

///////////////////////////////////////////////////////////////////////////////////////////////////
// Private serialization

template< class TElementData >
void SymbolicStokes<TElementData>::save(Serializer& rSerializer) const
{
    using BaseType = FluidElement<TElementData>;
    KRATOS_SERIALIZE_SAVE_BASE_CLASS(rSerializer, BaseType );
}


template< class TElementData >
void SymbolicStokes<TElementData>::load(Serializer& rSerializer)
{
    using BaseType = FluidElement<TElementData>;
    KRATOS_SERIALIZE_LOAD_BASE_CLASS(rSerializer, BaseType);
}

///////////////////////////////////////////////////////////////////////////////////////////////////
// Class template instantiation

template class SymbolicStokes< SymbolicStokesData<2,3> >;
template class SymbolicStokes< SymbolicStokesData<2,4> >;
template class SymbolicStokes< SymbolicStokesData<3,4> >;
template class SymbolicStokes< SymbolicStokesData<3,6> >;
template class SymbolicStokes< SymbolicStokesData<3,8> >;

}
